python 中的某些内容类似于多次出现的索引方法
Something in python similar to index method for multiple ocurrences
python 中是否有一些函数可以实现 index()
方法的功能,但考虑到多次出现?我知道对于字符串还有 rfind()
方法,这对列表有帮助,但对列表没有帮助。
P.S.: 我知道你可以使用列表理解并且有成千上万的例子,但我正在寻找 python 或那个固有的预定义函数可以通过一些包获得。
,如您所知,
def find_indexes(lst, val):
return [i for i,v in enumerate(lst) if v == val]
会起作用。如果你不喜欢使用函数而不是对象自己的方法,你可以为此构建一个自己的 class:
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]
python 中是否有一些函数可以实现 index()
方法的功能,但考虑到多次出现?我知道对于字符串还有 rfind()
方法,这对列表有帮助,但对列表没有帮助。
P.S.: 我知道你可以使用列表理解并且有成千上万的例子,但我正在寻找 python 或那个固有的预定义函数可以通过一些包获得。
def find_indexes(lst, val):
return [i for i,v in enumerate(lst) if v == val]
会起作用。如果你不喜欢使用函数而不是对象自己的方法,你可以为此构建一个自己的 class:
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]