2013-06-25 33 views

回答

4

沒有爲沒有內置功能。你可以做your_list.index(min(your_list))

5

有沒有內置,但minmax採取key的說法,它可以讓你做這樣的事情:

from operator import itemgetter 

index, elem = min(enumerate(iterable), key=itemgetter(1)) 

這適用於任何迭代,不只是列出。

+0

不錯的答案,不過'指數()'在目前公認的一種方法處理任何序列類型('str','unicode',在Python 2.x中有''list','tuple','bytearray','buffer','xrange'),這對於大多數目的來說可能是通用的,我懷疑。 – martineau

+0

我真的很喜歡這一點,我認爲這將是更快,因爲它只有一次迭代的名單,而'lst.index(分鐘(LST))'必須重複兩次。但即使在大型(10,000個元素)列表中,timeit也告訴我index + min大約快兩倍。 :-) –

2

如果你有NumPy的,它有argmaxargmin功能就可以使用。

0

minkey=的說法,你可以嘗試像

min(range(len(mylist)), key=mylist.__getitem__) 
相關問題