只需传入一个可获取每个项目的第一个元素的可调用对象。使用operator.itemgetter()
最简单:
from operator import itemgetter
max(g, key=itemgetter(0))
但是如果您必须针对整数值而不是按字典排序的项目进行测试,则 lambda 可能会更好:
max(g, key=lambda k: int(k[0]))
您需要哪一个取决于您期望包含不同长度数字的字符串的最大值。小于还是'4'
大于?'30'
演示:
>>> g = (['42', '50'], ['30', '4'])
>>> from operator import itemgetter
>>> max(g, key=itemgetter(0))
['42', '50']
>>> g = (['20', '10'], ['10', '74'])
>>> max(g, key=itemgetter(0))
['20', '10']
itemgetter()
或显示和 a lambda
with之间的区别int()
:
>>> max((['30', '10'], ['4', '10']), key=lambda k: int(k[0]))
['30', '10']
>>> max((['30', '10'], ['4', '10']), key=itemgetter(0))
['4', '10']