1

という空のリストを作成し、list_set既存のリスト original_list のコピーを追加する関数がlist_set[0]ありoriginal_listます。

関数は をコピーlist_set[0]し、値をランダムに選択して、既存の関数 new_sum に基づいて操作し、この新しいリストを として追加する必要がありlist_set[1]ます。

同様に、関数はコピーしlist_set[1](これは と同じではありません list_set[0])、 でランダムに値を選択list_set[1]し、関数 new_sum に基づいて操作し、それを として追加する必要がありlist_set[2]ます。

関数はこれを 300 回実行する必要があります。

私のコードでは、関数が 300 個の同一のコピーを作成original_listし、各リストの値をランダムに操作していることに気付きました。

def condition_manipulate(value):
    list_set=[]
    for i in range(0,value):
        new_list=original_list[:]
        i=random.choice(range(len(original_list)))
        new_list[i]=new_sum(new_list[i])
        list_set.append(new_list)
    return list_set

このコードを修正するにはどうすればよいですか? 助けていただければ幸いです

4

1 に答える 1

0

前に指摘したように、i の上書きに関する問題を除けば、実際には常に元のリストを再度取得しているようです。このようなものはどうですか:

def condition_manipulate(value):
    list_set=[original_list]
    for i in range(0,value):
        new_list=list_set[-1][:]
        i=random.choice(range(len(original_list)))
        new_list[i]=new_sum(new_list[i])
        list_set.append(new_list)
    return list_set
于 2013-07-07T19:39:51.237 に答える