Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
people = [("ann", 31), ("bob", 25), ("cid", 31)]
by_age = sorted(people, key=lambda p: p[1])
print([name for name, age in by_age])['bob', 'ann', 'cid']
- Ждать
cidпередann: сортировка вsortedустойчивая, элементы с равными ключами сохраняют исходный порядок, а вpeopleannстоит раньшеcid. - Ждать имена в исходном порядке:
key=lambda p: p[1]заставляетsortedсравнивать только возраст, поэтому первым идётbobс возрастом25.
- Как отсортировать тот же список от старшего к младшему?
- Что
sorted(people)безkeyсравнивает в первую очередь?