对许多变量执行功能

时间:2015-03-27 02:55:08

标签: python dictionary

我想要执行相同功能的变量很多。函数的返回值应保存在一个变量中,并附加字母m。我目前正在使用字典但是我无法将键值对转换为具有该字符串的变量名称。我在下面列出了我的方法,我开始追加/添加这个方法或者一起使用更好的方法

A=4
B=5
C=6
listletter = {'mA':A,'mB':B,'mC':C}
for key in listletter :
    listletter[key]=performfunc(listletter[key])

请注意,我不想使用字典来引用值。我实际使用的变量是numpy,它们已经有很多索引了 而且线条很长。因此,我需要不同的变量名,而不是dict ['variablename'] [] [] ...

我知道exec函数,但我在这里这是不好的约定。我也很感激任何关于与任务无关的简单改进的一般建议(也许我应该使用密钥,值而不是?)。

编辑:我也可以简单地对变量执行函数但不将字母m附加到它上面。我想在a,b和c上执行相同的功能。该函数将返回a,b和c的新值。我再次最终想要将变量作为a,b和amp; c而不是通过字典

2 个答案:

答案 0 :(得分:0)

您应该能够使用locals()将所有局部变量转换为字典,然后在结果字典中将m添加到它们中。

res = {}
for key, value in locals().items():
   res["m"+key] = somefunc(value)

答案 1 :(得分:0)

我不确定你有多少变数。如果你有一把,那么这应该工作。

a,b,c,d = 31,21,311,11

print("original values: ", a,b,c,d)

#replace the lambda function with whatever function that you want to use.
a,b,c,d = map(lambda x:x**2,(a,b,c,d))

print("changed values,same variables: ", a,b,c,d)