使用重复元素python

时间:2017-06-25 06:20:30

标签: python

我有一个这样的清单:[1,12,3,4,4,5,12,15,13,​​11]

我想找到12的指数,即6。 我尝试过线性方法,但效率不高。

item = 12
for i in range(len(mylist)):
    if mylist[i] == item:
        index = i
return index

有效的方法吗?

3 个答案:

答案 0 :(得分:5)

从右到左:

mylist = [1,12,3,4,4,5,12,15,13,11]
item = 12
for i in range(len(mylist)-1,-1,-1):
    if mylist[i] == item:
        index = i
        print(index)
        break

答案 1 :(得分:2)

列表中最后一次出现的元素与颠倒列表中该元素的第一次出现相同。

因此原始列表中最后一个元素的索引等于(length_of_list - index_in_reversed_list - 1)。

您可以使用list.reverse()方法反转列表,然后按list.index()方法查找反向列表中首次出现所需元素的索引。

例如:

>>> mylist = [1,12,3,4,4,5,12,15,13,11]
>>> temp = mylist[:]
>>> temp.reverse()
>>> index = len(temp) - temp.index(12) - 1
>>> print(index)
6

答案 2 :(得分:1)

len(mylist) - list(reversed(mylist)).index(item) -  1

就够了