Python列表复制

时间:2013-07-05 20:31:26

标签: python list function copy

我有一个函数可以创建一个名为list_set的空列表,并添加一个预先存在的列表的副本, original_list,因此list_set[0]original_list

该函数必须复制list_set[0],随机选择一个值并根据a操纵它 预先存在的函数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

如何修复此代码?非常感谢帮助

1 个答案:

答案 0 :(得分:0)

除了覆盖我的问题,如前所述,似乎你实际上总是再次采用原始列表。这样的事情怎么样:

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