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发生变化的原因是这根本就是两个变量啊,不能说明列表时不可变类型,结论不成立。
那么怎么说明列表时可变类型呢,点击