多维列表及其依赖性

时间:2014-05-06 23:46:47

标签: python list multidimensional-array

我有一个关于在python中删除多维列表中的依赖关系的问题。

目前,我的大型脚本中有一个(简化的)代码段:

mylist = [ 1,2,3 ]
listreplaced = mylist
listreplaced[0]="test"
print mylist

mylist = [ 1,2,3 ]
listreplaced = list(mylist)
listreplaced[0]="test"
print mylist

#Here it gets tricky
mylist = [ [ 1,2,3 ] ]
listreplaced = list(mylist)
listreplaced[0][0] = "test"
print mylist

mylist = [ [ 1,2,3 ] ]
listreplaced = list(mylist[0])
listreplaced[0] = "test"
print mylist

哪个输出:

[['test', 2, 3]
[1, 2, 3]
[['test', 2, 3]]
[[1, 2, 3]]

如您所见,第三个示例也替换了多维列表中的第一个值。我想要做的是:无论列表有多少维度,我想要一个函数使它独立于它所基于的列表。代码将是这样的:

mylist = [ [ 1,2,3 ] ]
listreplaced = makeIndependentList(mylist)
listreplaced[0][0] = "test"
print mylist

,结果应为[[1, 2, 3]]而不是[['test', 2, 3]]。 有没有人对如何编写这样的函数有任何想法?它应该,无论列表的维度数量,所以如果我有一个列表[ [ [ [ [ [ 1,2,3 ] ] ] ] ] ],它仍然应该在所有级别上独立。

提前致谢,

杰夫

1 个答案:

答案 0 :(得分:2)

你只需使用复制模块......那就是它的用途......

 from copy import deepcopy

 my_other_list = deepcopy(my_list)