Сортировка списка с именованными атрибутами не реализуется
class Student:
def __init__(self, full_name, group_number, progress):
self.full_name = full_name
self.group_number = group_number
self.progress = progress
def __repr__(self):
return repr((self.full_name, self.group_number, self.progress))
student_objects = [
Student('john', 1, 3),
Student('Andrew', 2, 5),
Student('dave', 3, 2),
]
sorted(student_objects, key=lambda student: student.progress) # сортируем по оценкам
print(student_objects)
sorted(student_objects, key=lambda student: student.full_name)
print(student_objects)
Вывод:
[('john', 1, 3), ('Andrew', 2, 5), ('dave', 3, 2)]
[('john', 1, 3), ('Andrew', 2, 5), ('dave', 3, 2)]
Подскажите, пожалуйста, почему не реализуется сортировка?
Ответы (1 шт):
Автор решения: anton
→ Ссылка
Все реализуется, просто вы не присваиваете результаты к переменным:
class Student:
def __init__(self, full_name, group_number, progress):
self.full_name = full_name
self.group_number = group_number
self.progress = progress
def __repr__(self):
return repr((self.full_name, self.group_number, self.progress))
student_objects = [
Student('john', 1, 3),
Student('Andrew', 2, 5),
Student('dave', 3, 2),
]
student_objects = sorted(student_objects, key=lambda student: student.progress) # сортируем по оценкам
print(student_objects)
student_objects = sorted(student_objects, key=lambda student: student.full_name)
print(student_objects)
Результат:
[('dave', 3, 2), ('john', 1, 3), ('Andrew', 2, 5)]
[('Andrew', 2, 5), ('dave', 3, 2), ('john', 1, 3)]