함수 orderBy()

Jmnote (토론 | 기여)님의 2021년 10월 2일 (토) 17:00 판 (→‎Python)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

orderBy()

2 PHP[ | ]

3 Python[ | ]

from pprint import pprint 

def orderBy(by, ascending=[]):
  class K:
    def __init__(self, o, *args): self.o = o
    def __lt__(self, other):
      for i, key in enumerate(by):
        asc = ascending[i] if i < len(ascending) else True
        if self.o[key] < other.o[key]: return asc
        if self.o[key] > other.o[key]: return not asc
  return K

employees = [
{'EmployeeID':'1', 'Name':'한놈',   'BirthDate':'1999-01-01'},
{'EmployeeID':'2', 'Name':'두시기', 'BirthDate':'2000-01-01'},
{'EmployeeID':'3', 'Name':'석삼',   'BirthDate':'1999-01-01'},
{'EmployeeID':'4', 'Name':'너구리', 'BirthDate':'2000-01-01'}
]
pprint( sorted(employees, key=orderBy(['BirthDate'])) )
pprint( sorted(employees, key=orderBy(['BirthDate','Name'],ascending=[False,True])) )
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}