python中的数字

在python中,数字是不可变类型

>>> n = 1
>>> id(n)
1586785760
>>> n = 2
>>> id(n)
1586785792

如上,改变变量n的取值,其内存地址发生了变化,说明数字是不可变类型。

那么,可能存在疑问,同样的例子是不是说明列表也是不可变类型呢?

>>> li1 = [1, 2, 3]
>>> id(li1)
2108634549000
>>> li1 = [1, 2, 3, 4]
>>> id(li1)
2108634546760

瞧,同样方法,我们发现列表的内存地址也发生变化,是不是意味着列表是不可变类型?

答:不是!

看一段代码:

>>> n = 1
>>> id(n)
1586785760
>>> n = 1
>>> id(n)
1586785760
>>> li = [1, 2]
>>> id(li)
2108634547848
>>> li = [1, 2]
>>> id(li)
2108634614216

这下明白了吧!

我们得出数字是不可变类型结论时:用到的是同一个变量n,而改变其取值,发现id发生变化,正说明数字不可变,结论成立。

我们得出列表是不可变类型结论时:用的根本就不是同一个变量li1,id发生变化的原因是这根本就是两个变量啊,不能说明列表时不可变类型,结论不成立。

那么怎么说明列表时可变类型呢,点击

原文地址:https://www.cnblogs.com/tarantino/p/10210505.html