[Python] 파이썬 리스트(List) 정렬
2021. 9. 16. 23:18ㆍProgramming/Python
728x90
- 먼저 리스트 자료구조에서 sort 멤버 함수를 호출하면 작은 값이 앞으로, 큰 값이 뒤로 오는 "오름차순" 정렬이 기본이다. 여기서 인자로 reversed=True 를 주면 반대로 정렬되는 것.
그리고 sort() 함수의 리턴은 None 이라서 값으로 받아올 때 쓰면 안된다.li = [3,1,4,5] li.sort() # [1,3,4,5] li.sort(reverse=True) # [5,4,3,1]
li = [1,5,3,2] res = li.sort() # None 이 들어감
- sort 함수의 인자로 key 를 줄 수 있는데, 이 key에 해당하는 값을 기준으로 정렬을 해주겠다는 것이다. key에다가는 함수를 넣어줄 수 있다. "len" 같은 값을 넣어도 된다.
lambda식은 다음에 따로 정리해봐야겠다.res = [[5,2,1],[4,3,2],[9,0,1]] res.sort(key=lambda x: x[1]) # 1번 인덱스 기준으로 정렬 print(res) # [[9, 0, 1], [5, 2, 1], [4, 3, 2]]
- 여러 값을 동시에 정렬하고 싶으면, tuple 이나 list에 넣고 한번에 정렬을 돌리면 된다.
값이 모두 세 개 있는데, 맨 앞에 값을 비교해서 가장 작은 값은 가장 앞으로, 만약 값이 같다면 그 다음 숫자가 작은 값이 앞으로.. 이런식으로 정렬이 된다.!! 원소의 개수가 동일하지 않아도 정렬이 되는데, 값이 없어서 어떤 수를 넣어도 그 수보다 작게 나온다.res = [[4,2,1],[4,3,2],[4,0,1]] res.sort() print(res) # [[4, 0, 1], [4, 2, 1], [4, 3, 2]]
res = [[4],[4,3,2],[4,-9999999999,1]] res.sort() print(res) # [[4], [4, -9999999999, 1], [4, 3, 2]]
그 외에도 custom comparator로 정렬하는 방법도 있고
'Programming > Python' 카테고리의 다른 글
[Python] 기초문법 - 자료형 (0) | 2021.07.19 |
---|---|
[Python] 기초문법 - 입출력 (0) | 2021.07.19 |