2016-08-23 26 views
-2

我有這樣的代碼「列表索引必須是整數,沒有列出」並具有枚舉

cNames = data["channelnames"] 
goodChannels = [i for i,x in enumerate(cNames) if x!='Skipped'] 
data["channelnames"]=cNames[goodChannels] 

我需要在後面的通道號,但CNAMES [goodChannels]引發錯誤「列表索引必須是整數,而不是列表「

該列表由整數組成。有沒有辦法使這個工作正確?

cNames [np.array(goodChannels)]不能使用相同的錯誤,所以我假設在這裏還有別的事情發生。

+0

那你認爲'CNAMES [goodChannels]'呢?什麼索引號是一個列表? –

+0

您不能使用另一個整數列表爲列表建立索引。它必須是一個切片或一個整數。 –

+0

Matlab翻譯錯誤。我現在可以看到問題了。謝謝 – ochensati

回答

1

您需要另一個列表理解:

data["channelnames"] = [cNames[i] for i in goodChannels] 
+1

或者更好的是,跳過中間人,並簡單地'數據['channelnames'] = [姓名的名稱在數據['channelnames']如果名稱!='跳過']' –

相關問題