首页 > 解决方案 > 在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)不能工作。谁能帮我在循环内的一行中完成这项工作。

标签: pythonloopsvariablessequencevariable-names

解决方案


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

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]}

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


推荐阅读