次のスクリプトで問題が発生しました。個別に変更できるように、次のリストのコピーを3つ作成する必要があります。ただし、同じリストのクローンを3つ作成しているようで、1つを変更すると、それらすべてが変更されます。関数は次のとおりです。
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,[])
これを実行すると、文字列「THIS SHOULD BE IN ONE PLACE」が3回表示されることに注意してください(位置[0] [0] [0]、[1] [0] [0]、および[2] [0] ] [0]、一度ではありません。これは、リストが複製されるのではなく、一緒にエイリアス化されているためと思われます。ただし、明示的に複製しました。
私はこの1時間、頭をテーブルにぶつけて過ごしました。あなたの提案した解決策は大歓迎です!