created_date: date
name: str
# и, соответственно список из них
hello_list = [
Hello(name='a', created_date=datetime.date(2023, 11, 22)),
Hello(name='b', created_date=datetime.date(2023, 11, 21)),
Hello(name='c', created_date=datetime.date(2023, 11, 24))
]
теперь я хочу сделать сортировку, сначала по дате по убыванию, а потом по имени по возрастанию и тут я не совсем понимаю могу ли я это сделать
from operator import attrgetter
hello_list.sort(key= attrgetter("created_time", "name"), reverse=True)
но так у меня будет по обоим полям asc или desc, а как сделать по первому desc, а по второму asс?
Примено так: class ReversedSort: def __init__(self, obj): self.obj = obj def __lt__(self, other): return self.obj > other.obj def __eq__(self, other): return self.obj == other.obj hello_list.sort(key=lambda x: (ReversedSort(x.created_time), x.name))
Обсуждают сегодня