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 回答