Python 这两种类型的列表副本有什么区别

Python 这两种类型的列表副本有什么区别,python,list,Python,List,nLst2=nLst1使nLst2指向与nLst1相同的内存,这意味着修改一个数组的内容将修改另一个数组: list1=[1,2,3] list2=list1 列表2[0]=3 清单1[3,2,3] 但是,nLst3=nLst1[:]复制了nLst1,因此这两个数组是不相交的: list1=[1,2,3] list2=list1[:] 列表2[0]=3 列表1#仍然[1,2,3] 阅读更多信息。第一个不是复制,它会将丢失的两个指向同一内存地址,第二个将复制。如果实现了第一个,那么更改一个将影

nLst2=nLst1
使
nLst2
指向与
nLst1
相同的内存,这意味着修改一个数组的内容将修改另一个数组:

list1=[1,2,3]
list2=list1
列表2[0]=3
清单1[3,2,3]
但是,
nLst3=nLst1[:]
复制了
nLst1
,因此这两个数组是不相交的:

list1=[1,2,3]
list2=list1[:]
列表2[0]=3
列表1#仍然[1,2,3]

阅读更多信息。

第一个不是复制,它会将丢失的两个指向同一内存地址,第二个将复制。如果实现了第一个,那么更改一个将影响另一个。第二个将定义一个指向不同内存地址的列表的新切片副本,您也可以使用
list.copy()
,它们都将取
O(n)
nLst2=nLst1
不是副本。这就是区别。看看调用每个列表的结果。对于1和2,它等于3,而不是。
nLst1 = ['A','B','C','D']

nLst2 = nLst1

# And

nLst3 = nLst1[:]