Python:使用循环创建变量

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}

相关内容