tkn*_*man 2 python list duplicates
我需要能够在python中复制列表列表.
所以例如现在我有一个返回列表的函数.
这始终是列表中的列表.
例如:
myList = [[1,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
现在我需要创建这个列表的两个副本(myList1和myList2),每个副本都是可分开的(例如,如果我编辑myList1,myList2将不会被编辑)
我尝试了一切.
从简单:
myList1 = myList[:]
myList2 = myList[:]
Run Code Online (Sandbox Code Playgroud)
更复杂的:
myList1 = []
for ch in myList:
myList1.append(ch)
myList2 = []
for ch in myList:
myList2.append(ch)
Run Code Online (Sandbox Code Playgroud)
什么都行不通 如果我更改一个列表中的值:
myList1[0][0] = 10
Run Code Online (Sandbox Code Playgroud)
两个列表成为:
[[10,2,3],[4,5,6],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)
知道怎么做吗?
到目前为止,您尝试的所有内容只会创建外部列表的浅表副本.要创建深层副本,请使用其中一个
copied_list = [x[:] for x in my_list]
Run Code Online (Sandbox Code Playgroud)
使用列表理解或
copied_list = copy.deepcopy(my_list)
Run Code Online (Sandbox Code Playgroud)
使用该copy.deepcopy()功能.