У меня есть список словарей
rows = [
{'name': 'someone1', 'score': 20},
{'name': 'someone2', 'score': 90},
{'name': 'someone3', 'score': 60},
]
Я хочу добавить еще один ранг поля в зависимости от оценки. В настоящее время я делаю это в несколько этапов.
# Step 1: sort it
rows_sorted = sorted(rows, key=lambda x: x['score'], reverse=True)
# Step 2: add rank field
[row.setdefault('rank', idx) for idx, row in enumerate(rows_sorted, start=1)]
Так что теперь мой требуемый вывод - в row_sorted, который похож на
[{'name': 'someone2', 'score': 90, 'rank': 1},
{'name': 'someone3', 'score': 60, 'rank': 2},
{'name': 'someone1', 'score': 20, 'rank': 3}]
Есть ли способ сделать это за один шаг?