파이썬의 리스트를 사용하면서, 정렬해야 하는 경우가 있을 것이다.
이번 포스팅은 리스트의 한 원소를 이용하여 정렬하는 방법을 정리하려고 한다.
1. 기본적인 리스트 정렬 방법
먼저, 리스트를 정렬하는 방법은 다음과 같다.
리스트의 기본 함수로 sort()를 제공한다. 다음은 sort() 함수를 이용한 정렬 예이다.
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python num = [1, 4, 5, 2, 3] alpha = ['a', 'd', 'e', 'b', 'c'] num.sort() alpha.sort() print num print alpha | cs |
결과 :
1 2 | [1, 2, 3, 4, 5] ['a', 'b', 'c', 'd', 'e'] | cs |
이처럼 쉽게 정렬할 수 있고, 숫자 뿐만이 아니라 문자도 가능하다.
2. 리스트 역정렬 방법
파이썬에서는 역정렬을 바로 제공하지는 않는 것 같다.
물론, 사용자가 역정렬 되는 함수를 만들면 괜찮겠지만, 기본 제공하는 함수를 이용하여 리스트를 역정렬할 수도 있다.
reverse()함수를 이용하면, 리스트의 요소를 반대로 정렬시킨다.
따라서, 리스트를 역정렬하려면 다음과 같이 하면 될 것이다.
1 2 3 4 5 6 7 | #!/usr/bin/env python num = [1, 4, 5, 2, 3] num.sort() num.reverse() print num | cs |
결과 :
1 | [5, 4, 3, 2, 1] | cs |
또 다른 방법으로는 sort에 reverse 인자를 넣는 방법이다.
1 2 | num.sort(reverse=True) alpha.sort(reverse=True) | cs |
결과 :
1 2 | [5, 4, 3, 2, 1] ['e', 'd', 'c', 'b', 'a'] | cs |
위의 두 가지 방법처럼, 파이썬에서는 간단하게 역정렬이 가능하다.
3. 더 들어가..) 다차원 정렬 방법
위의 방법은 1차원 리스트일 때 가능한 방법이라고 할 수 있겠다.
그럼 다차원 배열의 리스트일 경우에는 어떻게 정렬할까.
분명, 위와 같은 방법으로는 가능하지 않을 것이다.
이떄는 key 매개 변수와 lambda 식을 함께 사용하여, list의 sort함수를 이용하면 된다. 다음을 보자.
1 2 3 4 5 6 7 8 9 10 11 | #!/usr/bin/env python list = [ ['One', 1], ['Zero', 0], ['Three', 3], ['Two', 2], ] list.sort(key=lambda x:x[1]) print list | cs |
10번 라인을 보면, 2번째 원소로 정렬을 하는 lambda식을 확인할 수 있다.
결과는 다음과 같다.
1 | [['Zero', 0], ['One', 1], ['Two', 2], ['Three', 3]] | cs |
위의 리스트를 정렬하는 방법 정도면, 실제로 프로그래밍할 때의 정렬에 응용할 수 있지 않을까 생각한다.
서로 이웃 추가는 항상 환영입니다. :)
'프로그래밍 > Python' 카테고리의 다른 글
[파이썬/Python] 파이썬 코드에서 Bash 명령어 실행 방법 (0) | 2018.06.03 |
---|---|
[파이썬/ Python] 파이썬 주석 한글 입력 방법 (0) | 2018.06.03 |
[파이썬/Python] 리눅스에서 파이썬 실행파일 만들기 (0) | 2018.06.03 |
파이썬(Python) 설치 방법 (Linux) (0) | 2017.04.26 |
[파이썬/Python] 설치 방법 (window/linux(ubuntu)) 윈도우/우분투 설치 (0) | 2017.04.26 |
댓글