2016-08-23 69 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']如果名称!='跳过']' –

相关问题