使用np.zeros的语法无效

时间:2016-09-16 16:49:54

标签: python

我想写这个:

Update

问题:我得到x = 'something_{}'.format(1) exec('{} = {}'.format(x,np.zeros((2,2)))) 但我不知道如何解决它。

有人有想法吗?

1 个答案:

答案 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))))

但你真正想做的是动态变量名称,这是重复的。