Есть ли лучший способ сделать это? Мне не нужен список, который нужно сортировать, просто просматривая его, чтобы получить элемент с наибольшим указанным атрибутом. Мне больше всего нравится чтение, но сортировка всего списка, чтобы получить один элемент, кажется немного расточительным.
>>> import operator
>>>
>>> a_list = [('Tom', 23), ('Dick', 45), ('Harry', 33)]
>>> sorted(a_list, key=operator.itemgetter(1), reverse=True)[0]
('Dick', 45)
Я мог бы сделать это довольно verbosely...
>>> age = 0
>>> oldest = None
>>> for person in a_list:
... if person[1] > age:
... age = person[1]
... oldest = person
...
>>> oldest
('Dick', 45)