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

时间:2015-11-07 20:27:07

标签: python list python-2.7 max counting

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

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

4 个答案:

答案 0 :(得分:5)

使用内置函数maxlist.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)))

答案 1 :(得分:3)

最简单的方法:

list1.index(max(list1))

答案 2 :(得分:3)

另一种方法是使用枚举,这将避免在列表上迭代两次:

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

答案 3 :(得分:1)

我更喜欢solution by @AChampion,这避免了两次迭代列表

>>> 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