Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.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列表id(L)和id(L[:])_Python_List_Copy - Fatal编程技术网

python列表id(L)和id(L[:])

python列表id(L)和id(L[:]),python,list,copy,Python,List,Copy,我很好奇id(L)和id(L[:])之间的区别和关系,其中L是一个列表 官方文件对id()作了如下说明: CPython实现细节:这是内存中对象的地址 但是我不明白为什么id(L)和id(L[:])有不同的值。L[:]生成列表的副本。它是一个全新的列表,包含与L相同的项目。因此,它存储在内存中的不同位置,并具有不同的id。顺便说一句,它与L[slice(None)]相同。所以,你的意思是,即使我只是运行id(L[:]),解释器也会创建列表的浅层副本并返回新地址,然后在id(L[:])完成后释放新

我很好奇
id(L)
id(L[:])
之间的区别和关系,其中
L
是一个列表

官方文件对id()作了如下说明:

CPython实现细节:这是内存中对象的地址


但是我不明白为什么
id(L)
id(L[:])
有不同的值。

L[:]
生成列表的副本。它是一个全新的列表,包含与L相同的项目。因此,它存储在内存中的不同位置,并具有不同的id。

顺便说一句,它与
L[slice(None)]
相同。所以,你的意思是,即使我只是运行
id(L[:])
,解释器也会创建列表的浅层副本并返回新地址,然后在
id(L[:])
完成后释放新复制的列表?谢谢你的回复:)@taijirobot,事情就是这样。