이 코드의 동작을 이해하려면, 처음 sort를 호출하면 이름의 알파벳순으로 리스트가 정렬된다는 사실을 먼저 기억해야 한다.
power_tools.sort(key=lambda x: x.name) print(power_tools) >>> [Tool('드릴', 4), Tool('연마기', 4), Tool('원형 톱', 5), Tool('착암기', 40)]
두 번째로 weight에 의해 내림차순으로 sort를 호출하면 sander와 drill이 모두 weight가 4라는 사실을 알 수 있다. 따라서 sort 메서드는 원래 리스트에 있던 것과 똑같은 순서로 두 원소를 결과 리스트에 넣는다. 따라서 name을 사용해 오름차순으로 정렬한 상대적인 순서가 보존된다.
power_tools.sort(key=lambda x: x.weight, reverse=True) print(power_tools) >>> [Tool('착암기', 40), Tool('원형 톱', 5), Tool('드릴', 4), Tool('연마기', 4)]