【发布时间】:2020-01-03 13:20:55
【问题描述】:
stdev = 3
value_1 = array
value_2 = array
value_3 = array
for h in range(1,4):
name = ('value' + str(h))
globals()['new_name_'+ str(h)] = np.mean(name) * stdev
它应该是这样的:
new_name_1 = #result1
new_name_2 = #result2
new_name_3 = #result3
但是,np.mean() 不适用于 str。
我尝试使用 unicode 和其他东西。
我必须使用globals() 获得results(new name)。有人知道怎么做吗?
【问题讨论】:
-
这是一个非常糟糕的方法。你不应该弄乱
globals()来制作可变数量的变量。您需要一个数组字典。 “我必须通过使用 globals() 来获得结果(新名称)”您几乎可以肯定 不需要 需要这样做。除此之外,字符串的含义是什么?np.mean(name)只是将变量名的字符串传递给mean(),而不是存储在它上面的数组。此外,name = ('value' + str(h))无法生成实际的变量名称,因为它缺少下划线,但这是一个附带问题 -
其余代码无法引用由为其命名的变量这一事实是它不是最佳实践的主要原因之一。将其放入现有的容器(例如字典)中将允许它被您选择的关联 id 引用,例如唯一的字符串或数字。
标签: python string numpy for-loop global-scope