如果您实际上只使用示例中显示的单个字母,那么
str.rindex它将很方便。这就提出了一个
ValueError如果没有这样的项目,相同的错误类作为
list.index将提高。演示:
>>> li = ["a", "b", "a", "c", "x", "d", "a", "6"]>>> ''.join(li).rindex('a')6
对于更一般的情况,您可以
list.index在反向列表中使用:
>>> len(li) - 1 - li[::-1].index('a')6
此处的切片将创建整个列表的 副本 。简短列表就可以了,但是对于
li很大的情况,使用惰性方法可以提高效率:
def list_rindex(li, x): for i in reversed(range(len(li))): if li[i] == x: return i raise ValueError("{} is not in list".format(x))
一线版:
next(i for i in reversed(range(len(li))) if li[i] == 'a')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)