
예를 들어, 튜플을 원소로 갖는 리스트를 sorted()로 정렬을 하게 되면 기본적으로 첫 번째 요소를 기준으로 정렬합니다.
만일 첫 번째 요소가 똑같은 값이 여러 개 있다면 자동으로 두 번째 요소를 기준으로 정렬합니다.
만일 두 번째 요소를 기준으로 먼저 정렬한 후, 첫 번째 요소를 정렬하고 싶다던가 등 정렬 조건을 바꾸고 싶다면 어떻게 해야 할까요?
아래 리스트 L을 다양한 방법으로 정렬해보겠습니다.
L = [(4,0), (4,3), (4,2), (3,2), (2,1), (1,0)]
1. 인자 없이 sorted() 사용하기
- 첫 번째 요소를 기준으로 정렬합니다.
- 첫 번째 요소가 같으면 두 번째 요소로 비교합니다.
ex1 = sorted(L)
print(ex1) # [(1, 0), (2, 1), (3, 2), (4, 0), (4, 2), (4, 3)]
2. key인자에 lambda 함수를 넘겨주기
- key인자에 lambda 함수를 넘겨주면 반환값을 가지고 비교해 정렬합니다.
- 이 때, key로 전달되지 않은 요소에 대해선 정렬하지 않습니다.
ex2 = sorted(L, key = lambda x : x[0])
print(ex2) # [(1, 0), (2, 1), (3, 2), (4, 0), (4, 3), (4, 2)]
ex3 = sorted(L, key = lambda x : x[1])
print(d) # [(4, 0), (1, 0), (2, 1), (4, 2), (3, 2), (4, 3)]
3. lambda 함수에 다중 조건 넘겨주기
- 첫 번째 인자를 기준으로 오름차순 정렬을 먼저 한다.
- 그 결과를 가지고 두 번째 인자를 기준으로 내림차순 정렬합니다. (-를 붙이면 내림차순 정렬)
ex4 = sorted(L, key = lambda x : (x[0], -x[1]))
print(ex4) # [(1, 0), (2, 1), (3, 2), (4, 3), (4, 2), (4, 0)]
'Language > Python' 카테고리의 다른 글
파이썬 내장 함수 (0) | 2022.04.20 |
---|---|
f 문자열 포매팅 (0) | 2022.04.19 |
파이썬의 자료형 - 딕셔너리 (0) | 2022.04.19 |
파이썬의 자료형 - 튜플 (0) | 2022.04.19 |
파이썬의 자료형 - 집합 (0) | 2022.04.19 |

예를 들어, 튜플을 원소로 갖는 리스트를 sorted()로 정렬을 하게 되면 기본적으로 첫 번째 요소를 기준으로 정렬합니다.
만일 첫 번째 요소가 똑같은 값이 여러 개 있다면 자동으로 두 번째 요소를 기준으로 정렬합니다.
만일 두 번째 요소를 기준으로 먼저 정렬한 후, 첫 번째 요소를 정렬하고 싶다던가 등 정렬 조건을 바꾸고 싶다면 어떻게 해야 할까요?
아래 리스트 L을 다양한 방법으로 정렬해보겠습니다.
L = [(4,0), (4,3), (4,2), (3,2), (2,1), (1,0)]
1. 인자 없이 sorted() 사용하기
- 첫 번째 요소를 기준으로 정렬합니다.
- 첫 번째 요소가 같으면 두 번째 요소로 비교합니다.
ex1 = sorted(L) print(ex1) # [(1, 0), (2, 1), (3, 2), (4, 0), (4, 2), (4, 3)]
2. key인자에 lambda 함수를 넘겨주기
- key인자에 lambda 함수를 넘겨주면 반환값을 가지고 비교해 정렬합니다.
- 이 때, key로 전달되지 않은 요소에 대해선 정렬하지 않습니다.
ex2 = sorted(L, key = lambda x : x[0]) print(ex2) # [(1, 0), (2, 1), (3, 2), (4, 0), (4, 3), (4, 2)] ex3 = sorted(L, key = lambda x : x[1]) print(d) # [(4, 0), (1, 0), (2, 1), (4, 2), (3, 2), (4, 3)]
3. lambda 함수에 다중 조건 넘겨주기
- 첫 번째 인자를 기준으로 오름차순 정렬을 먼저 한다.
- 그 결과를 가지고 두 번째 인자를 기준으로 내림차순 정렬합니다. (-를 붙이면 내림차순 정렬)
ex4 = sorted(L, key = lambda x : (x[0], -x[1])) print(ex4) # [(1, 0), (2, 1), (3, 2), (4, 3), (4, 2), (4, 0)]
'Language > Python' 카테고리의 다른 글
파이썬 내장 함수 (0) | 2022.04.20 |
---|---|
f 문자열 포매팅 (0) | 2022.04.19 |
파이썬의 자료형 - 딕셔너리 (0) | 2022.04.19 |
파이썬의 자료형 - 튜플 (0) | 2022.04.19 |
파이썬의 자료형 - 집합 (0) | 2022.04.19 |