python中的可变类型和不可变类型

By | 2017年2月20日

分类                    Python类型

可变类型            列表,字典

不可变类型       数字,字符串,元组

下面我们在上面的例子里加上 id()调用, 就会清楚的看到对象实际上已经被替换了:

>>> x = ‘Python numbers and strings’
>>> print id(x)
16191392
>>> x = ‘are immutable?!? What gives?’
>>> print id(x)
16191232
>>> i = 0
>>> print id(i)
7749552
>>> i = i + 1
>>> print id(i)

7749600

>>> aList = [‘ammonia’, 83, 85, ‘lady’]
>>> aList
[‘ammonia’, 83, 85, ‘lady’]
>>>
>>> aList[2]
85
>>>
>>> id(aList)
135443480
>>>
>>> aList[2] = aList[2] + 1
>>> aList[3] = ‘stereo’
>>> aList
[‘ammonia’, 83, 86, ‘stereo’]
>>>
>>> id(aList)
135443480
>>>
>>> aList.append(‘gaudy’)
>>> aList.append(aList[2] + 1)
>>> aList
[‘ammonia’, 83, 86, ‘stereo’, ‘gaudy’, 87]
>>>
>>> id(aList)
135443480

注意列表的值不论怎么改变, 列表的 ID 始终保持不变。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注