如何计算元素在列表中的位置?

How to count how many positions away an element is in a list?

如果我有一个整数列表,并且我想 return 距离最大数的空格数是从列表的开头算起,如果给定一个列表 list1,我该怎么做?我应该能够 return 整数 '7' 因为 512 是最大值并且相距 7 个空格。

list1=[34,5,1,7,5,3,8,512,8,43]

使用内置函数max and list.index

>>> list1=[34,5,1,7,5,3,8,512,8,43]
>>> max_ele = max(list1)
>>> print(list1.index(max_ele))
7

这可以在一行中完成,如

print(list1.index(max(list1)))

最简单的方法:

list1.index(max(list1))

另一种方法是使用枚举,这将避免遍历列表两次:

>>> index, element = max(enumerate(list1), key=lambda x: x[1])
>>> index
7
>>> element
512

我更喜欢 避免重复列表两次

>>> list1=[34,5,1,7,5,3,8,512,8,43]
>>> index, element = max(enumerate(list1), key=lambda x: x[1])
>>> index
7

另一种无需重复列表两次即可高效完成的方法如下:

Python 2:

>>> list1=[34,5,1,7,5,3,8,512,8,43]
>>> max(xrange(len(list1)), key=list1.__getitem__)
7

在 Python 3:

>>> list1=[34,5,1,7,5,3,8,512,8,43]
>>> max(range(len(list1)), key=list1.__getitem__)
7