Возможно ли объединить последние две строки в одну строку?
Да, это так. ordered_candidates
исключает баллы из результата, поскольку вы выбираете только кандидатов с [x for _, x in...]
. Это в основном только выбирает элемент second из каждого кортежа. Кроме того, ordered_points
сортирует только баллов. Они оба также сортируются в обратном порядке с reverse=True
.
Похоже, вы можете просто изменить ordered_candidates
, чтобы включить оба элемента в пары (point, candidate)
.
>>> points = [4,7,3,2,7]
>>> candidates = ['a', 'b', 'c', 'd', 'e']
>>> sorted(zip(points, candidates), reverse=True)
[(7, 'e'), (7, 'b'), (4, 'a'), (3, 'c'), (2, 'd')]