재미있는 코드들

[Python] 튜플, 리스트 등등 정렬하기

tongnamuu 2021. 5. 8. 12:50

리스트를 정렬하는 것은 매우 쉽다.

그런데 가끔 특정한 조건으로 정렬을 해야하는데 

docs.python.org/ko/3/howto/sorting.html

 

정렬 HOW TO — Python 3.9.5 문서

정렬 HOW TO 저자 Andrew Dalke와 Raymond Hettinger 배포 0.1 파이썬 리스트에는 리스트를 제자리에서(in-place) 수정하는 내장 list.sort() 메서드가 있습니다. 또한, 이터러블로부터 새로운 정렬된 리스트를 만

docs.python.org

1. lambda 활용

2. func_tools 의 cmp_to_key 를 import

1 의 경우엔 복잡해지면 매우 귀찮게 된다. 

2 의 경우엔 손코딩해야하는 경우 import해야 하는 모듈을 기억하고 있어야 하는 단점이 있다.

 

그래서 항상 가능한 방법을 소개하려고 한다.

상속을 이용해서 해결하는 것이다.

 

예를 들어 tuple 형태의 원소들을 가진 리스트를 정렬하고 싶다! 고 한다면

 

 

tuple을 상속받는 클래스를 만들어서 ___lt__를 정의하면 된다.

 

이렇게 정렬을 쉽게 할 수 있다.

물론 간단하면 lambda를 써도 좋다.

조금 복잡한 경우를 보기 위해 문제를 가져왔다.

https://programmers.co.kr/learn/courses/30/lessons/17686

 

코딩테스트 연습 - [3차] 파일명 정렬

파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램

programmers.co.kr

 

 

다른걸 import 하지 않고 원하는데로 정렬이 가능해진다.

또한 class B(tuple) 을 선언해서 다른 방식의 정렬도 편하게 해볼 수 있게 된다.