Answer
t.me/python_tesstОтвет:
[ {'name': 'Ed', 'age': 24},
{'name': 'Jane', 'age': 34},
{'name': 'Janet','age': 34},
{'name': 'John', 'age': 32},
{'name': 'John', 'age': 64},
{'name': 'John', 'age': 99},
{'name': 'Sara', 'age': 64} ]
Объяснение:
Предположим, мы хотим отсортировать данный нам список словарей. Но мы не просто хотим сортировать их по имени или возрасту, мы хотим отсортировать их по обоим полям. Это означает, что элементы, которые сравниваются, сохраняют свой первоначальный порядок. Сначала сортируем по возрасту, а потом по имени. С помощью operator.itemgetter()
мы получаем поля возраста и имени из каждого словаря в списке. Это дает нам результат, который мы хотели.
Код:
people = [ { 'name': 'John', "age": 64 }, { 'name': 'Janet', "age": 34 }, { 'name': 'Ed', "age": 24 }, { 'name': 'Sara', "age": 64 }, { 'name': 'John', "age": 32 }, { 'name': 'Jane', "age": 34 }, { 'name': 'John', "age": 99 }, ] import operator people.sort(key=operator.itemgetter('age')) people.sort(key=operator.itemgetter('name')) print(people)