我在使用以下脚本时遇到了一些问题。它应该制作以下列表的 3 个副本,以便可以独立修改它们。但是,它似乎创建了同一个列表的 3 个克隆,当您修改一个时,您将全部修改。这是功能:
def calculateProportions(strategies,proportions):
import itertools
combinations = []
columns = list(itertools.product(strategies,repeat=3))
for i in range(0,len(columns)):
columns[i] = list(columns[i])
for n in range(0,len(strategies)):
combinations.append(columns[:])
combinations[0][0][0] = "THIS SHOULD ONLY BE IN ONE PLACE"
print combinations
strategies = [[0,0],[0,50],[50,50]]
calculateProportions(strategies,[])
请注意,当您运行此程序时,您会看到字符串“这应该在一个地方”3 次(位置 [0][0][0]、[1][0][0] 和 [2][0] ][0],不是一次。这似乎是因为列表是一起别名而不是克隆的。但是我明确地克隆了它。
我花了最后一个小时把头撞到桌子上。非常感谢您提出的解决方案!