【发布时间】:2022-01-08 23:57:54
【问题描述】:
只是说我有很多变量名称序列为var1、var2、varn?... 例如:
var1 = 1
var2 = 2
var3 = 3
var4 = 4
我想用这些变量名填充一个列表。我试着这样做,但没有奏效:
def namestr(obj, namespace):
return [name for name in namespace if namespace[name] is obj]
variables = []
for i in range(1,5):
variables.append(namestr(vars()['semplus' + str(i)], globals()))
有人知道怎么做吗? 结果应该是这样的:
[var1, var2, var3, var4]
【问题讨论】:
-
我会在第一句话之后介入并质疑您为什么要如此命名变量?!为什么不用列表呢?
-
听起来像字典更适合用在这里。
-
您应该使用数据结构作为字典而不是变量。但只是为了记录,。
locals()调用将返回您所期望的namespace在您的示例中。 -
@deceze 命名变量有什么问题?
-
正是您当前遇到的问题:您无法汇总处理它们,而且名称并没有真正增加任何价值。
var[1]、var[2]几乎相同,但整体上也很容易处理。