我正在生成数字的三元组,并试图将它们放入我将在后面处理的列表中。在下面的代码中,我将三个Elt添加到列表L中,其中包含一个三元组。如何保持Elt未来的修改不会修改L?应该超级简单,但如何?
L = [[2, 3, 4]]
Elt = [5, 6, 7]
def proc1(BigList, NewElt):
BigList = BigList + [NewElt.copy()]
return(BigList)
print(L)
L = proc1(L, Elt)
print(L)
Elt[1] = 70 # now L[1] is different from Elt
print(L)
print(Elt)
Output:
[[2, 3, 4]]
[[2, 3, 4], [5, 6, 7]]
[[2, 3, 4], [5, 6, 7]]
[5, 70, 7]
编辑:事实上,我一直在寻找按价值调用。现在我明白了。谢谢!
答案 0 :(得分:1)
您可以创建列表的副本并使用它。有几种方法可以在Python中复制列表,see here.
例如:
def proc1(BigList, NewElt):
BigList = BigList + [NewElt[:]]
return(BigList)