如果可能的话,如何使用 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}