【发布时间】:2011-04-29 23:28:12
【问题描述】:
有没有一种方法可以在 python 中循环生成变量名并为其赋值?例如,如果我有
prices = [5, 12, 45]
我想要
price1 = 5
price2 = 12
price3 = 45
我可以循环执行此操作,而不是手动分配price1 = prices[0]、price2 = prices[1] 等。
谢谢。
编辑
很多人建议我写一个要求这个的理由。首先,有时我认为这可能比使用列表更方便......我不记得确切的时间,但我想当有很多嵌套级别时我已经考虑过使用它。例如,如果一个人有一个列表列表,以上述方式定义变量可能有助于降低嵌套级别。其次,今天我在尝试学习Pytables的使用时想到了这一点。刚接触Pytables,看到在定义表的结构时,列名和类型是这样描述的:
class TableFormat(tables.IsDescription):
firstColumnName = StringCol(16)
secondColumnName = StringCol(16)
thirdColumnName = StringCol(16)
如果我有 100 列,明确键入每列的名称似乎需要做很多工作。所以,我想知道是否有办法即时生成这些列名。
【问题讨论】:
-
你为什么要这样做?
-
男人发明了列表......所以你不必这样做。
-
这是一个主要的代码气味!你在这里的目标是什么?拿到“price94”后你打算怎么办?
-
是这样的用例:您有一些代码可以接受一些数据并对其进行处理,输出是,例如,Y 的一些预测值?而且您不知道需要多少预测值(以及 t/4 多少变量分配),因为这取决于输入数组的大小,可能会有所不同)。
-
另一个用例,元编程。 github.com/apache/incubator-airflow 像这样创建 DAG,github.com/apache/incubator-airflow/blob/master/airflow/…。如果要创建上游或下游依赖项,请通过分配的变量名来完成。
标签: python