如果我有一個整數列表,並且我想從列表的開頭返回最大數字的空格數量,那麼如果給出list1列表,我該如何做?我應該能夠返回整數'7',因爲512是最大值,它是7個空格。如何統計元素在列表中的位置?
list1=[34,5,1,7,5,3,8,512,8,43]
如果我有一個整數列表,並且我想從列表的開頭返回最大數字的空格數量,那麼如果給出list1列表,我該如何做?我應該能夠返回整數'7',因爲512是最大值,它是7個空格。如何統計元素在列表中的位置?
list1=[34,5,1,7,5,3,8,512,8,43]
使用內建函數max
和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))
ANOT她的方法是用枚舉,這將避免遍歷目錄兩次:
>>> index, element = max(enumerate(list1), key=lambda x: x[1])
>>> index
7
>>> element
512
哦,好的破解! –
@TomZych實際上不是黑客 – jamylak
我寧願避免了迭代列表中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
如果你的列表中有多個項目是最大,例如'list1的= [34,5,1,7,5,3,8,512,8,43,512]'?你對'7'還滿意嗎? – boardrider