python中的某些内容类似于多次出现的索引方法

时间:2015-04-09 15:54:02

标签: python function methods indexing

python中是否有一些函数可以执行index()方法但是考虑多次出现?我知道字符串还有rfind()方法,这种方法有所帮助,但对于列表没什么用。

P.S。:我知道你可以使用列表推导,并且有成千上万的例子,但我正在寻找一个python固有的预定义函数,或者可以通过某个包获得。

1 个答案:

答案 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]