Вызов последовательности переменных с одинаковым именем внутри цикла в python

#python #loops #variables #sequence #variable-names

#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) не может работать. Кто-нибудь, пожалуйста, может помочь мне выполнить эту работу в одной строке внутри цикла.

Комментарии:

1. Вам нужен словарь для хранения списков

2. @roganjosh Спасибо.

Ответ №1:

Я предлагаю вам использовать 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 соответствовал именам списков (элемент в позиции i в var_list будет переходить к списку с i именем).

Комментарии:

1. Большое вам спасибо. Это работа, но единственный ли это способ? У меня огромные данные.

2. @hhtt Если вам нужна более конкретная помощь, нам нужна более конкретная информация о том, что именно вам нужно. Вы могли бы задать новый вопрос с более конкретной информацией.