如果我对
的任何元素进行任何更改,我试图在函数中连接我的列表元素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] 随着更新的元素。任何建议将不胜感激。
答案 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)]
与你的最后一行相同。