Как отсортировать список объектов класса по полю объекта в python?

Пользователь

от felix , в категории: Python , 8 месяцев назад

Как отсортировать список объектов класса по полю объекта в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от alisa.bahringer , 8 месяцев назад

@felix 

Для сортировки списка объектов класса по полю объекта можно использовать функцию sorted() и аргумент key, который указывает на поле объекта, по которому нужно их отсортировать. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [Person("John", 25), Person("Alice", 30), Person("Bob", 20)]

sorted_people = sorted(people, key=lambda person: person.name)

for person in sorted_people:
    print(person.name, person.age)


В данном примере создается класс Person с полями name и age. Затем создается список объектов этого класса. Для сортировки списка по полю name используется функция sorted() с аргументом key=lambda person: person.name, который указывает на поле name объекта. Результат сортировки сохраняется в переменной sorted_people, которая затем используется для вывода отсортированных объектов в цикле for.