Python 오브젝트 리스트 정렬

1 개요[ | ]

Python 오브젝트 리스트 정렬
Python 오브젝트 리스트 다중정렬
from pprint import pprint

class Order:
    def __init__(self, id, name, date):
        self.id = id
        self.name = name
        self.date = date
    def __repr__(self):
        return repr((self.id, self.name, self.date))

orders = [
    Order(1, 'Ashley', '2020-05-05'),
    Order(2, 'Peter',  '2020-05-05'),
    Order(3, 'Ashley', '2020-01-01'),
    Order(4, 'John',   '2020-01-01'),
    Order(5, 'Peter',  '2020-01-01'),
]

# 원본
pprint( orders )
# name 오름차순
pprint( sorted(orders, key=lambda x: x.name) )
# name 내림차순
pprint( sorted(orders, key=lambda x: x.name, reverse=True) )
# name, id 오름차순
pprint( sorted(orders, key=lambda x: (x.name, x.id)) )
# name 오름차순, id 내림차순
pprint( sorted(orders, key=lambda x: (x.name, -x.id)) )
# name, id 내림차순
pprint( sorted(orders, key=lambda x: (x.name, x.id), reverse=True) )
# name 내림차순, id 오름차순
pprint( sorted(orders, key=lambda x: (x.name, -x.id), reverse=True) )

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}