вернуть максимальное значение из списка, состоящего из нескольких элементов Python

У меня есть список, который имеет 2 элемента в каждом кортеже, один элемент представляет собой строку (идентификатор файла), а другой - int (количество слов)

('ca01', 715), ('ca02', 784), ('ca03', 690), ('ca04', 756), ('ca05', 625), ('ca06', 705)

Мне было интересно, есть ли способ вернуть оба элемента в кортеже на основе максимального значения второго элемента, например здесь, максимальное значение в этом списке - это вторые элементы во втором кортеже «784». Однако я хотел бы вернуть оба элемента "('ca02', 784)"


person seus    schedule 19.03.2016    source источник
comment
Используйте 1_. См. help(max)   -  person Andrea Corbellini    schedule 19.03.2016


Ответы (1)


Вы можете использовать функцию max() с соответствующим ключом:

>>> lst = [('ca01', 715), ('ca02', 784), ('ca03', 690), ('ca04', 756), ('ca05', 625), ('ca06', 705)]
>>> 
>>> from operator import itemgetter
>>> 
>>> max(lst, key=itemgetter(1))
('ca02', 784)
person kasravnd    schedule 19.03.2016
comment
есть ли другой способ сделать это без использования элемента импорта оператора from?? см. обновление - person seus; 19.03.2016
comment
@seus Что ты имеешь в виду под другим способом? Вы хотите получить максимальный предмет на основе другой логики? - person kasravnd; 19.03.2016
comment
@seus Вы могли бы использовать max(lst, key=lambda x: x[1]) - person Aaron Christiansen; 19.03.2016
comment
@Kasramvd просто интересно, есть ли альтернативный способ, кроме импорта другой библиотеки - person seus; 19.03.2016
comment
@seus Да, именно это OrangeFlash81 упомянул в предыдущей команде. - person kasravnd; 19.03.2016