2016-01-31 1 views
1

У меня есть следующий кодВозврат объекта из списка, для которого конкретного условия вычисляется из других объектов в списке правильно

last_question = max(answer.question_id for answer in answers) 

Мне нужно получить не только максимальную question_id, но и сама answer объекта, который содержит это question_id. Я могу сделать это с следующим кодом (при условии, answers непустые):

max_answer = answers[0] 
for answer in answers: 
    if answer.question_id > max_answer.question_id: 
     max_answer = answer 
last_question = max_answer.question_id 

Но я могу это сделать короче, таким образом, Python?

ответ

3

Вы можете использовать key аргумент max функции:

max_answer = max(answers, key=lambda q: q.question_id) 
Смежные вопросы