У меня есть два списка, каждый из которых состоит из объектов, имеющих date
. Я пытаюсь их объединить, а затем упорядочить по дате:Сортировка списка в python - Приоритет
combined = invoices + payments
combined.sort(key = lambda x: x.date)
Все хорошо и хорошо. Однако, если в тот же день есть и объект invoice
, и объект payment
, я хочу, чтобы payment
был помещен в список до invoice
.
Я искал некоторую информацию, точно такую же заметку. Спасибо за ссылку. Я не мог найти его. Решение было слишком простым. Не могу поверить, что я пропустил очевидное. –
Кстати, у вас были смешанные данные, вы могли бы отсортировать их с помощью 'combination.sort (key = lambda x: (x.date, x.is_invoice))', предполагая, что у вас есть свойство is_invoice boolean. Кортеж будет комплектоваться по каждому элементу, поэтому, если первый элемент (дата) совпадает, второй (is_invoice) будет сравниваться (а False будет до True). – zvone