链接在python中的函数内部列表

时间:2015-03-22 00:25:50

标签: python

如果我对

的任何元素进行任何更改,我试图在函数中连接我的列表元素
def itinerant(S1,S2,S3,S4,S5,S6,S7,S8):
    old_list=[S1,S2,S3,S4,S5,S6,S7,S8]
    outer=[S5,S6,S7,S8]
    outer_cube=[[S2,S3,S4],[S1,S3,S4],[S1,S2,S4],[S1,S2,S3]]

所以例如,如果我在'outer_cube'列表中的outer_cube上的任何S3上进行更改,则此更改将转到此列表中的其余S3和S3'old_list' 我的函数返回     new_list = [S1,S2,S3,S4,S5,S6,S7,S8] 随着更新的元素。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您只有一个s3变量的实例作为参数传入。您将它分配给一堆列表,但它们都引用相同的s3。什么是s3?如果它是一个python对象,你需要深度克隆它。

import copy
news3= copy.deepcopy(s3) # deep (recursive) copy    

如果它类似于字典,那么你就可以构建一个像dict一样的副本(s3)。

这意味着在您的代码中,您需要复制您想要单独操作的所有实体。代码的第二行变为:

outer=[copy.deepcopy(S5),copy.deepcopy(S6),copy.deepcopy(S7),copy.deepcopy(S8)]

与你的最后一行相同。