0
我想這樣寫:無效使用語法np.zeros
x = 'something_{}'.format(1)
exec('{} = {}'.format(x,np.zeros((2,2))))
問題:我得到SyntaxError: invalid syntax
,我不知道如何解決它。
有人有想法嗎?
我想這樣寫:無效使用語法np.zeros
x = 'something_{}'.format(1)
exec('{} = {}'.format(x,np.zeros((2,2))))
問題:我得到SyntaxError: invalid syntax
,我不知道如何解決它。
有人有想法嗎?
numpy數組的字符串表示形式不是有效的Python文字,因此它不能是eval
ed。
z = np.zeros((2,2))
str(z) # [[ 0. 0.]\n [ 0. 0.]] <-- invalid literal
技術上你想可以通過使用對象的再版達到什麼樣的(但一般情況下,它也將無法正常工作,例如,當矩陣的規模是巨大的):
import numpy as np
x = 'something_{}'.format(1)
exec('{} = np.{!r}'.format(x, np.zeros((2,2))))
但你真正想做的是動態變量名稱,這是重複的。
np.zeros((2,2))返回一個數組,你不能在這樣的格式調用中使用它。 – elethan
運行'「{} = {}」。format(x,np.zeros((2,2)))'首先看看它的值是什麼。你會看到有一個嵌入的'\ n',所以你會得到一個錯誤傳遞給'exec()'。 – MattDMo