在python中复制列表列表?

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)

知道怎么做吗?

Sve*_*ach 8

到目前为止,您尝试的所有内容只会创建外部列表的浅表副本.要创建深层副本,请使用其中一个

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()功能.