python中是否有一些函数可以执行index()
方法但是考虑多次出现?我知道字符串还有rfind()
方法,这种方法有所帮助,但对于列表没什么用。
P.S。:我知道你可以使用列表推导,并且有成千上万的例子,但我正在寻找一个python固有的预定义函数,或者可以通过某个包获得。
答案 0 :(得分:1)
As Steven pointed out,正如您所知,
def find_indexes(lst, val):
return [i for i,v in enumerate(lst) if v == val]
会奏效。如果你不喜欢使用函数而不是对象自己的方法,你可以为此构建一个自己的类:
class MultiIndexList(list):
def multi_index(self, val):
return [i for i,v in enumerate(self) if v == val]
然后你可以像
一样使用它>>> lst = MultiIndexList((1, 2, 3, 1, 5, 3, 2, 4, 5, 1, 2))
>>> lst.multi_index(1)
[0, 3, 9]