在Python3中从列表理解中查找索引

在Python3中从列表理解中查找索引,python,if-statement,list-comprehension,Python,If Statement,List Comprehension,我想使用最好的Python语法在列表中查找匹配项的索引。以下是我所拥有的: v = ['=', 'c', '=', 'c', 'c', 'c', '=', 'c', 'c', '='] 现在,返回以下条件下的整数列表: '=' in v is True 到目前为止,我已经: [v.index(i) for i in v if i=='='] 其中返回: [ 0, 0, 0, 0 ] 而不是: [ 0, 2, 6, 9 ] 我错过了最后一步,我不想将其放入“for”循环中。使用: 您需要

我想使用最好的Python语法在列表中查找匹配项的索引。以下是我所拥有的:

v = ['=', 'c', '=', 'c', 'c', 'c', '=', 'c', 'c', '=']
现在,返回以下条件下的整数列表:

'=' in v is True
到目前为止,我已经:

[v.index(i) for i in v if i=='=']
其中返回:

[ 0, 0, 0, 0 ]
而不是:

[ 0, 2, 6, 9 ]
我错过了最后一步,我不想将其放入“for”循环中。

使用:

您需要的是:

[i for i, entry in enumerate(v) if entry == '=']

这种理解与您的理解之间的区别在于,在您的理解中,在找到匹配项后,您会得到它的
索引
,它返回第一次找到对象的列表中的位置。这就是为什么你会得到0。

很好。非常感谢。
[i for i, entry in enumerate(v) if entry == '=']