各項目の最初の要素を取得する callable を渡すだけです。使用するoperator.itemgetter()
のが最も簡単です:
from operator import itemgetter
max(g, key=itemgetter(0))
ただし、辞書順でソートされたアイテムではなく整数値に対してテストする必要がある場合は、ラムダの方が適している可能性があります。
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()
示す:lambda
int()
>>> max((['30', '10'], ['4', '10']), key=lambda k: int(k[0]))
['30', '10']
>>> max((['30', '10'], ['4', '10']), key=itemgetter(0))
['4', '10']