Python 基本列表操作
我在python交互式shell中尝试了一个非常基本的代码Python 基本列表操作,python,python-2.7,Python,Python 2.7,我在python交互式shell中尝试了一个非常基本的代码 >>> a=[1,2,3] >>> id(a) 36194248L >>> a.append(4) >>> a [1, 2, 3, 4] >>> id(a) 36194248L >>> >>> id([1,2,3]) 36193288L >>> id([1,2,3].append(4)) 506
>>> a=[1,2,3]
>>> id(a)
36194248L
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> id(a)
36194248L
>>>
>>> id([1,2,3])
36193288L
>>> id([1,2,3].append(4))
506033800L
>>> id([1,2,3].append(5))
506033800L
>>> id([1,2,3].append(6))
506033800L
问:当我给一个名为“a”的变量分配一个列表,并尝试附加更多的值时,id不会改变,但如果我在不给变量分配的情况下尝试相同的事情,id会改变。允许更改同一内存地址,为什么会出现这种行为?list.append返回无,而不是列表
您将获得该对象的id结果,但没有一个是单例。对于给定的Python解释器运行,它始终是相同的:
>>> id(None)
4514447768
>>> [].append(1) is None
True
>>> id([].append(1))
4514447768
list.append返回None,而不是list
您将获得该对象的id结果,但没有一个是单例。对于给定的Python解释器运行,它始终是相同的:
>>> id(None)
4514447768
>>> [].append(1) is None
True
>>> id([].append(1))
4514447768
因为list.append返回None,所以您正在调用idNone,它将只有一个实例 因为list.append返回None,所以您正在调用idNone,它将只有一个实例