如何分配名称即时生成的python变量?

时间:2012-05-09 15:52:51

标签: python

说我想做以下事情:

name = 1.2

事实上,'name'的文字名称是即时提供的(可能是'mike = 1.2','john = 1.2',...)

希望我解释了我的问题,并提前感谢任何提示。

3 个答案:

答案 0 :(得分:4)

您可以使用globals()locals(),具体取决于所需的范围:

>>> globals()['foo'] = 'bar'
>>> foo
'bar'

但是,如果你问这个问题,那就意味着你做错了什么 - 生成变量本质上是一个坏主意。你应该使用字典之类的结构。

答案 1 :(得分:4)

以下是如何以字典形式执行此操作的示例。

>>> people = {}
>>> people['mike'] = 1
>>> people['john'] = 2
>>> people['mike']
1
>>> people['john']
2
>>> print people
{'mike': 1, 'john': 2}

另请参阅文档herehere

答案 2 :(得分:3)

你可以做到

globals()['yourvariables'] = variable

这会将变量添加到全局命名空间。我不打算评论这是好主意还是坏主意。