如何获取具有给定值的最后一项的索引

时间:2018-10-21 09:15:47

标签: python

在整数值列表中

a = [4, 8, 2, 3, 8, 5, 8, 8, 1, 4, 8, 2, 1, 3]

我必须找到值为8的最后一项的索引。有没有比我更优雅的方法了?

a = [4, 8, 2, 3, 8, 5, 8, 8, 1, 4, 8, 2, 1, 3]

for i in range(len(a)-1, -1, -1):
    if a[i] == 8:
        print(i)
        break

3 个答案:

答案 0 :(得分:4)

尝试一下:

a = [4, 8, 2, 3, 8, 5, 8, 8, 1, 4, 8, 2, 1, 3]
index = len(a) - 1 - a[::-1].index(8)

只需反转数组并找到元素的第一个索引,然后从数组的长度中减去它即可。

答案 1 :(得分:1)

>>> lst = [4, 8, 2, 3, 8, 5, 8, 8, 1, 4, 8, 2, 1, 3]
>>> next(i for i in range(len(lst)-1, -1, -1) if lst[i] == 8)
10

如果列表不包含搜索值,则会抛出StopIteration

答案 2 :(得分:0)

在所有值为sorted的项目索引上使用8并取最后一个值,或使用reverse = True取第一个值

x = sorted(i for i, v in enumerate(a) if v == 8)[-1]

print(x) # => 10