Как автоматизировать создание списков в python из элементов другого списка

#python #list #for-loop

Вопрос:

У меня есть список X из n элементов, поэтому я хочу сгенерировать список каждого элемента из списка X.

 X = [ Task_1 , Task_2 , ... ]
for ele in X:
    ele = []
 

Теперь, если я использую следующий код, он выдает мне ошибку.

 print(len(Task_1))
Output:
Task_1 is not defined
 

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

1. Это не тот способ, которым работает назначение переменных. На самом деле у вас есть только ele переменная. Либо используйте глобальные переменные, либо вообще словарь.

2. Можете ли вы опубликовать немного больше? Как вы определили Task_1 это ?

3. Итак, вы хотите иметь пустой список для каждого элемента? Или вы хотите иметь списки с каждым отдельным элементом? Нравится [[Task1], [Task2]]

Ответ №1:

Вместо этого используйте словарь:

 X = ['Task_1', 'Task_2', 'Task_3']

container = dict()
for item in X:
    container[item] = list()
 

После этого у вас будет, например

 container["Task_1"]
 

в виде списка. Другой способ включил globals()[item] = list() бы в цикл, но это действительно портит ваше пространство имен.

Ответ №2:

Хотя я не рекомендую этого делать, но вы можете :

 X = ['Task_1', 'Task_2', 'Task_3']

for item in X:
    globals()[item] = []
    
print(Task_1)
print(len(Task_1))

print(Task_2)
print(len(Task_2))
 

Вместо этого вы можете создать вложенный список или словарь.