0

100個の要素のリストがあります。そのリストのコピーを 300 個作成し、それらのコピーを空のリストに保存する関数を作成しようとしています。次に、コピーされた各リストからインデックス付きの値をランダムに選択する関数が必要です。したがって、最初にコピーされたリストで 25 番目のインデックス値を選択し、次にコピーされたリストで 60 番目のインデックス値を選択する場合があります。次に、値のインデックスは、事前定義された関数の引数です。問題は、コピーしたリストが操作されていないことです。

私のコードは次のとおりです。

def condition_manipulate(value):
    list_set=[]                  #this is the list in which the copied lists will go
    for i in range(0,value):
        new_list=initial_conditions[:]    #initial_conditions is the list to be copied
        list_set.append(new_list)
        for i in list_set:           #My confusion is here. I need the function to choose
            for j in i:              #A random value in each copied list that resides
                 x=random.choice(i)  #In list_set and then run a predefined function on it.
                 variable=new_sum(i.index(x)
                 i[i.index(x)]=variable
    return list_set

#running condition_manipulate(300) should give me a list with 300 copies of a list
#Where a random value in each list is manipulated by the function new_sum

私はほとんどすべてを試しました。私は何を間違っていますか?どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

1

試す:

import random

def condition_manipulate(value):
    list_set=[]
    for i in range(value):
        new_list=initial_conditions[:]
        i=random.choice(range(len(initial_conditions)))
        new_list[i]=new_sum(new_list[i])
        list_set.append(new_list)
    return list_set
于 2013-07-04T18:50:27.273 に答える