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,事情就是这样。