Nat*_*ush 10 python variables names
我有一组名为 k1、k2 k3....k52 的变量。根据场景,它们的变量是列表/numpy 数组。本质上,我想在一个循环中对它们进行相同的操作,但我在遍历它们时遇到了麻烦。本质上我想要的是这样的:
for i in arange(0,52):
'k'+ str(i) = log10(eval('k' + str(i)))
Run Code Online (Sandbox Code Playgroud)
显然我知道上面的方法行不通,但它给出了这个想法。我的实际尝试是这样的:
for i in arange(0,10):
rate = eval('k' + str(i))
rate = np.array(rate,dtype=float)
rate = log10(rate)
rate.tolist()
vars()[rate] = 'k' + str(i)
Run Code Online (Sandbox Code Playgroud)
(它更改为 numpy 数组,以便我可以记录它,然后返回列表,以便我将变量名称更改回原来的名称)感谢您提供的任何帮助。我感觉这很简单,但此刻我却想不起来。
编辑:非常感谢您的答案,我应该解释一下,我不能真正将它们存储在一个集合数组中,它们需要保留为独立变量,原因是我不想深入探讨。
如果这些项目都是全局变量,您可以使用调用globals()来获取映射,然后操作它们:
g = globals()
for i in arange(0,52):
varname = 'k{}'.format(i)
g[varname] = log10(g[varname])
Run Code Online (Sandbox Code Playgroud)
但您确实只想将所有这些项目存储在列表或字典中。
该行:
vars()[rate] = 'k' + str(i)
Run Code Online (Sandbox Code Playgroud)
必须替换为:
vars()['k' + str(i)]=rate
Run Code Online (Sandbox Code Playgroud)