2013-01-08 69 views
3

給出一個數組列表,我可以找到第1個要素的最大的元組列表:查找最大的Python

>>> a,b,c,d = (4,"foo"),(9,"bar"),(241,"foobar"), (1,"barfoo") 
>>> print max([a,b,c,d]) 
(241,"foobar") 

還要找到第二個的最高如何元件?以及一個字符串的最大值?

回答

5

使用key參數:

import operator 

max([a, b, c, d], key=operator.itemgetter(1)) 

字符串的max()基於字符串的字節值; 'a'高於'A',因爲ord('a')高於ord('A')

對於示例輸入,(241,"foobar")仍然是最大的價值,因爲'f'>'b''foobar'較長(多值)超過'foo''b'>''(含b是繼長串的字母foo字符) 。

+0

+1 operator.itemgetter是你的朋友。 – hughdbrown

1

更短的是使用lambda作爲可調用

max([a, b, c, d], key=lambda t: t[1])