더북(TheBook)

이 코드의 동작을 이해하려면, 처음 sort를 호출하면 이름의 알파벳순으로 리스트가 정렬된다는 사실을 먼저 기억해야 한다.

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

>>>
[Tool('드릴', 4), Tool('연마기', 4), Tool('원형 톱', 5), Tool('착암기', 40)]

두 번째로 weight에 의해 내림차순으로 sort를 호출하면 sanderdrill이 모두 weight4라는 사실을 알 수 있다. 따라서 sort 메서드는 원래 리스트에 있던 것과 똑같은 순서로 두 원소를 결과 리스트에 넣는다. 따라서 name을 사용해 오름차순으로 정렬한 상대적인 순서가 보존된다.

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

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