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}