더북(TheBook)

비교하는 두 튜플의 첫 번째 위치에 있는 값(앞의 코드에서는 weight)이 서로 같으면 튜플의 비교 메서드는 두 번째 위치에 있는 값을 서로 비교하고, 두 번째 위치에 있는 값도 같으면 마찬가지 방식으로 세 번째 이후 위치 등에 대해 비교를 반복한다..

drill = (4, '드릴')
sander = (4, '연마기')
assert drill[0] == sander[0]   # 무게가 같다
assert drill[1] < sander[1]    # 알파벳순으로 볼 때 더 작다
assert drill < sander          # 그러므로 드릴이 더 먼저다

튜플 비교의 동작 방식을 활용해서 전동 공구 리스트를 먼저 weight로 정렬하고 그 후 name으로 정렬할 수 있다. 다음 코드는 정렬에 사용할 두 애트리뷰트를 우선순위에 따라 튜플에 넣어 반환하는 key 함수를 정의한다..

power_tools.sort(key=lambda x: (x.weight, x.name))
print(power_tools)

>>>
[Tool('드릴', 4), Tool('연마기', 4), Tool('원형 톱', 5), Tool('착암기', 40)]
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.