Python: создание переменных с использованием цикла

Как я могу создать словарь переменных и каждая переменная имеет идентичный номер, используя цикл в Python, если это возможно? например:

counter=0
for line in {1..5}:
     counter +=1
     line_dict_%counter={}
     line_dict_%counter[a]=1

выход

line_dict_1={'a':'1'}
line_dict_2={'a':'1'}
.1
.
.

1 ответ

Решение

В Python вы можете использовать exec() функция:

>>> for i in range(1, 6):
...     exec("line_dict_%s = { 'a': 1 }" % i)
... 
>>> line_dict_1
{'a': 1}
>>> line_dict_2
{'a': 1}
>>> line_dict_3
{'a': 1}
>>> line_dict_4
{'a': 1}
>>> line_dict_5
{'a': 1}

С помощью exec() В большинстве случаев это не очень хорошая идея, я бы предпочел словарь для сохранения отображений:

>>> kv = {}
>>> for i in range(1, 6):
...     kv['line_dict_{}'.format(i)] = { 'a': 1 }
... 
>>> kv
{'line_dict_4': {'a': 1}, 'line_dict_5': {'a': 1}, 'line_dict_1': {'a': 1}, 'line_dict_3': {'a': 1}, 'line_dict_2': {'a': 1}}

>>> kv['line_dict_1']
{'a': 1}
>>> kv['line_dict_2']
{'a': 1}
>>> kv['line_dict_3']
{'a': 1}
>>> kv['line_dict_4']
{'a': 1}
>>> kv['line_dict_5']
{'a': 1}
Другие вопросы по тегам