我需要能够在 python 中复制列表列表。
例如,现在我有一个返回列表的函数。
这总是列表中的列表。
例如:
myList = [[1,2,3],[4,5,6],[7,8,9]]
现在我需要创建此列表的两个副本(myList1 和 myList2),每个副本都是单独可变的(例如,如果我编辑 myList1,则不会编辑 myList2)
我什么都试过了。
从简单的:
myList1 = myList[:]
myList2 = myList[:]
更复杂的:
myList1 = []
for ch in myList:
myList1.append(ch)
myList2 = []
for ch in myList:
myList2.append(ch)
没有任何作用。如果我更改一个列表中的值:
myList1[0][0] = 10
两个列表变为:
[[10,2,3],[4,5,6],[7,8,9]]
知道怎么做吗?
最佳答案
到目前为止,您尝试的所有操作都只会创建外部列表的浅拷贝。要创建深拷贝,请使用
copied_list = [x[:] for x in my_list]
使用列表理解或
copied_list = copy.deepcopy(my_list)
使用 copy.deepcopy()
功能。
关于python - 在 python 中复制列表列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100187/