有没有办法从python中的迭代输出实例化变量?

时间:2014-06-28 01:28:31

标签: python variables scope

说我有一个清单     my_list = ['a','b','c'] 我有一套价值观     my_values = [1,2,3]

有没有办法迭代我的列表并将my_list的值设置为等于my_values

for i in range(len(my_list)):

    ## an operation that instantiates my_list[i] as the variable a = my_values[i]

...
>>> print a
1

我只是想这样做而不将保存程序的文件文本复制到新文件中,将新行插入到需要进入程序的字符串中。如果可能的话,我想跳过创建,重命名,销毁,文件操作,因为我正在处理大量的东西。

1 个答案:

答案 0 :(得分:2)

这可能是你不应该做的事,但由于globals()dict中包含了所有全局变量,你可以将它们添加到模块的全局字典中:

>>> my_list = ['a','b','c']
>>> my_values = [1,2,3]
>>> for k, v in zip(my_list, my_values):
...     globals()[k] = v
... 
>>> a
1
>>> b
2
>>> c
3

但请注意,最好不要将命名空间与变量值混合使用。我没有看到任何好消息。

我建议使用普通的dict来存储你的值,而不是将它们加载到全局或本地命名空间。