2015-11-07 78 views
1

如果我有一個整數列表,並且我想從列表的開頭返回最大數字的空格數量,那麼如果給出list1列表,我該如何做?我應該能夠返回整數'7',因爲512是最大值,它是7個空格。如何統計元素在列表中的位置?

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

如果你的列表中有多個項目是最大,例如'list1的= [34,5,1,7,5,3,8,512,8,43,512]'?你對'7'還滿意嗎? – boardrider

回答

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

最簡單的方法:

list1.index(max(list1)) 
3

ANOT她的方法是用枚舉,這將避免遍歷目錄兩次:

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

哦,好的破解! –

+0

@TomZych實際上不是黑客 – jamylak

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 
相關問題