Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基本列表操作_Python_Python 2.7 - Fatal编程技术网

Python 基本列表操作

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

我在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))
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,它将只有一个实例