Ваш список уже отсортирован от самого высокого до самого низкого по points
. Списки упорядочены, поэтому вы можете положиться на него для поддержания порядка при его повторении.
Таким образом, вы можете напечатать свои имена внутри этого for
l oop:
for team in WorldCup:
print(team['name'])
Однако я предполагаю, что это просто удача, и вы хотите справиться с любым возможным порядком команд. Если это так, мы можем отсортировать команды в порядке убывания по points
, используя sorted()
и reverse=True
.
Для сортировки key
, как и в других ответах, мы можем используйте operator.itemgetter()
. Использование itemgetter
вместо lambda
обычно немного быстрее, как показано в этом ответе .
from operator import itemgetter
WorldCup = [
{'name':"Spain", 'points':9},
{'name':"Portugal",'points':7},
{'name':"Iran",'points':6}
]
sorted_teams_desc = sorted(WorldCup, key=itemgetter('points'), reverse=True)
for team in sorted_teams_desc:
print(team['name'])
Вывод:
Spain
Portugal
Iran