반응형
파이썬에서는 sort(), sorted() 함수를 사용하여 간단히 오름차순으로 정렬할 수 있으며 reverse = True를 같이 사용하여 내림차순으로도 간단히 정렬할 수가 있습니다. 뿐만아니라 key = lambda를 사용하여 특정 요소를 기준으로 정렬의 기준을 정해줄 수 있습니다.
key가 하나일 때 key=lambda를 활용한 정렬의 예시입니다.
test = [ (1, 8), (2, 3), (7, 9), (6, 1), (4, 5) ]
# 기본 오름차순 정렬
print(sorted(test)) # [(1, 8), (2, 3), (4, 5), (6, 1), (7, 9)]
# x를 기준으로 오름차순 정렬
print(sorted(test, key = lambda x:x)) # [(1, 8), (2, 3), (4, 5), (6, 1), (7, 9)]
# x[0]을 기준으로 오름차순 정럴
print(sorted(test, key = lambda x:x[0])) # [(1, 8), (2, 3), (4, 5), (6, 1), (7, 9)]
# x[1]을 기준으로 오름차순 정렬
print(sorted(test, key = lambda x:x[1])) # [(6, 1), (2, 3), (4, 5), (1, 8), (7, 9)]
# 인자값인 test의 튜플 범위를 넘어가서 tuple index out of range 에러 발생
#print(sorted(test, key = lambda x:x[2]))
# 기본 내림차순 정렬
print(sorted(test, reverse = True)) # [(7, 9), (6, 1), (4, 5), (2, 3), (1, 8)]
# x를 기준으로 내림차순 정렬
print(sorted(test, key = lambda x:x, reverse = True)) # [(7, 9), (6, 1), (4, 5), (2, 3), (1, 8)]
# x[0]을 기준으로 내림차순 정렬
print(sorted(test, key = lambda x:x[0], reverse = True)) # [(7, 9), (6, 1), (4, 5), (2, 3), (1, 8)]
# x[1]을 기준으로 내림차순 정렬
print(sorted(test, key = lambda x:x[1], reverse = True)) # [(7, 9), (6, 1), (4, 5), (2, 3), (1, 8)]
# x[1]을 기준으로 내림차순 정렬 reverse = True 사용 대신 표현식에 -를 붙여 내림차순으로 정렬이 가능
print(sorted(test, key = lambda x:-x[1])) # [(7, 9), (1, 8), (4, 5), (2, 3), (6, 1)]
key가 여러개 일 때 정렬 우선순위를 정해줄 수 있습니다. 예를 들어 x[0]를 기준으로 정렬하다가 x[0]이 동일하다면 x[1]을 기준으로 정렬하는 식으로 우선순위를 정해줄 수 있습니다.
test = [ (1, 8), (2, 3), (7, 9), (6, 1), (4, 5), (1, 5) ]
# x[0]을 기준으로 오름차순 정렬하고 x[0]값이 같다면 x[1]을 기준으로 정렬
print(sorted(test, key = lambda x : (x[0], x[1])))
# [(1, 5), (1, 8), (2, 3), (4, 5), (6, 1), (7, 9)]
# x[0]을 기준으로 오름차순 정렬하고 x[0]값이 같다면 -x[1]을 기준(x[1]의 내림차순)으로 정렬
print(sorted(test, key = lambda x : (x[0], -x[1])))
# [(1, 8), (1, 5), (2, 3), (4, 5), (6, 1), (7, 9)]
반응형
'파이썬[Python]' 카테고리의 다른 글
파이썬[Python] 문자열 인덱싱(Indexing)과 슬라이싱(Slicing) (0) | 2022.01.29 |
---|---|
파이썬[Python] 랜덤 팀 생성기(코드) (0) | 2022.01.26 |
파이썬[Python] sort()와 sorted()의 차이 (0) | 2022.01.16 |
파이썬[Python] 리스트 내의 요소의 개수 구하기 / 리스트 내의 특정 요소의 개수 구하기 (0) | 2022.01.13 |
파이썬[Python] 재귀함수 횟수 제한 풀기(RecursionError 해결방법) (0) | 2022.01.10 |
최근댓글