在 python 中的循环中调用一系列具有相同名称的变量

Call a sequence of variables with same name inside loop in python

我有 5 个空列表 list1=[], list2=[], list3=[], list4=[], list5=[] 和包含 5 个变量的列表 var_list=[v1, v2, v3, v4, v5]。我想将 var_list 内的每个变量附加到相应的空列表内。我手动完成这项工作:

list1.append(var_list[0])
list2.append(var_list[1])
list3.append(var_list[2])
list4.append(var_list[3])
list5.append(var_list[4])

我想在for循环中这样做,我知道var_list的元素可以在循环内调用为var_list[i],但是我怎么能这样调用list,其中所有变量 list 具有相同的名称和不同的数字。 'list'+str(i) 无法工作。谁能帮我在循环内的一行中完成这项工作。

我建议您使用 dict 来保存所有列表。也许是这样的:

my_lists = {
    'list_{}'.format(i+1): []
    for i in range(5)}

var_list = [1, 2, 3, 4, 5]

for i, elem in enumerate(var_list):
    my_lists['list_{}'.format(i+1)].append(elem)

在 运行 之后,my_lists 将保持:

{'list_1': [1], 'list_2': [2], 'list_3': [3], 'list_4': [4], 'list_5': [5]}

注意:在这种情况下,假设 var_list 中元素的顺序对应于列表的名称(var_list 中位置 i 的元素将转到名称中包含 i 的列表)。