我想写这个:
Update
问题:我得到x = 'something_{}'.format(1)
exec('{} = {}'.format(x,np.zeros((2,2))))
但我不知道如何解决它。
有人有想法吗?
答案 0 :(得分:1)
numpy数组的字符串表示形式不是有效的Python文字,因此不能eval
编辑。
z = np.zeros((2,2))
str(z) # [[ 0. 0.]\n [ 0. 0.]] <-- invalid literal
从技术上讲,你可以通过使用对象的repr来实现你想要的东西(但是在一般情况下它也不会起作用,例如当矩阵的大小很大时):
import numpy as np
x = 'something_{}'.format(1)
exec('{} = np.{!r}'.format(x, np.zeros((2,2))))
但你真正想做的是动态变量名称,这是重复的。