一尘不染

Python-如何查找列表中某个元素的所有匹配项?

python

index()只会给出列表中第一个出现的项目。有没有整齐的技巧可以返回列表中的所有索引?


阅读 2512

收藏
2020-02-08

共2个答案

一尘不染

你可以使用列表理解:

indices = [i for i, x in enumerate(my_list) if x == "whatever"]
2020-02-08
一尘不染

虽然不是直接解决列表问题的方法,但numpy对于这种情况确实很有帮助:

import numpy as np
values = np.array([1,2,3,1,2,4,5,6,3,2,1])
searchval = 3
ii = np.where(values == searchval)[0]

返回:

ii ==>array([2, 8])

与其他一些解决方案相比,这对于包含大量元素的列表(数组)而言可能会更快。

2020-02-08