我試圖讓outputx [VX]值的指數值錯誤「不在名單」
>>> outs = np.array(outputx[vX]).tolist()
>>> print outs
[0.806, 0.760, 0.8]
>>> print type(outs)
(type 'list')
>>> idx = outputX.index(outs)
error -> [0.806, 0.760, 0.8] is not in list
這是什麼意思,我在做什麼錯?
我試圖讓outputx [VX]值的指數值錯誤「不在名單」
>>> outs = np.array(outputx[vX]).tolist()
>>> print outs
[0.806, 0.760, 0.8]
>>> print type(outs)
(type 'list')
>>> idx = outputX.index(outs)
error -> [0.806, 0.760, 0.8] is not in list
這是什麼意思,我在做什麼錯?
index
list方法需要一個值,並返回該值在調用該方法的列表中的位置。如果給定的值不在列表中,該方法將引發一個ValueError
異常。因此,舉例來說:在你的代碼,因爲在outputX
沒有元素(應該說是outputx
,順便Python是區分大小寫)包含列表[0.806, 0.760, 0.8]
發生
>>> [2, 4, 6, 8].index(6)
2
>>> [2, 4, 6, 8].index("no such value")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'no such value' is not in list
錯誤。
原因是您正在比較不同類型的數據。從問題的角度來看,你預計會發生什麼並不明確。
如果你想索引的列表,你可以使用列表理解:
idx = [outputX.index(i) for i in outs]
但是你應該死了確保outs
列表的所有值都在outputX
名單中還,否則蟒蛇會扔你ValueError
。
嘗試'outputX.index(0)'或'outputX.index(1)'。或'outputX.index(outputX.find(0.8))' –
'outputX'是什麼類型?另外,你的代碼引用'outputX'和'outputx' - 是有意的嗎? – mgilson