查找元组中第二个元素的最大值 - Python

时间:2013-01-08 05:59:47

标签: python find tuples max

给定一个元组列表,我可以通过以下方式找到元组列表中第一个元素的最大值:

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

但是如何找到第二个元素的最大值?以及字符串的最大值怎么样?

2 个答案:

答案 0 :(得分:6)

使用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后面的字符。)

答案 1 :(得分:2)

更短的是使用lambda作为可调用的

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