有没有办法可以在 python 中循环生成变量名并为其赋值?例如,如果我有
prices = [5, 12, 45]
I want
price1 = 5
price2 = 12
price3 = 45
我可以在循环或其他方式中执行此操作,而不是手动分配price1 = prices[0]
, price2 = prices[1]
etc.
谢谢。
EDIT
很多人建议我写一个要求这样做的理由。首先,有时我认为这可能比使用列表更方便......我不记得具体是什么时候,但我想我已经考虑过在有很多级别的嵌套时使用它。例如,如果有一个列表的列表,则以上述方式定义变量可能有助于减少嵌套级别。其次,今天我在尝试学习 Pytables 的使用时想到了这一点。我刚刚接触到 Pytables,发现在定义表的结构时,列名和类型是按以下方式描述的:
class TableFormat(tables.IsDescription):
firstColumnName = StringCol(16)
secondColumnName = StringCol(16)
thirdColumnName = StringCol(16)
如果我有 100 列,那么明确键入每列的名称似乎需要大量工作。所以,我想知道是否有一种方法可以动态生成这些列名称。
如果您确实想动态创建它们,您可以分配给由以下任一方法返回的字典globals()
or locals()
取决于您想要在哪个命名空间中创建它们:
globals()['somevar'] = 'someval'
print somevar # prints 'someval'
但我不建议这样做。一般来说,避免全局变量。使用locals()
通常只会掩盖你真正在做什么。相反,创建您自己的字典并分配给它。
mydict = {}
mydict['somevar'] = 'someval'
print mydict['somevar']
学习Python禅宗;运行这个并很好地理解它:
>>> import this
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)