我有一个这样的清单:[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
有效的方法吗?
答案 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
就够了