본문 바로가기
알고리즘

파이썬 - Python sort sorted 차이 (예시 포함)

by 푸드듥 2023. 5. 15.
반응형

파이썬에서 배열 정렬 시 사용할 수 있는 sort()와 sorted()함수의 사용법을 비교해보자.

 

  sort() sorted()
결과 원본 데이터를 정렬한다 복사본을 만들어 정렬한다 (원본 유지)
오름차순 정렬 (기본) a.sort() result = sorted(a)
내림차순 정렬 a.sort(reverse = True) result = sorted(a, reverse = True)

*a라는 배열을 정렬하고, sorted()의 경우 정렬된 복사본을 result라는 변수에 담는다.

 

 

복잡한 조건으로 정렬하기

예를 들어 배열 a의 원소가 a = [(1,2), (3,4)]와 같이 튜플로 이루어진 경우,

다음과 같이 복잡한 조건을 주어 정렬할 수 있다.

 

0-1. 각 원소의 첫 번째 인자를 기준으로 오름차순 정렬하고, 그 안에서 두 번째 인자를 기준으로 오름차순 정렬

a.sort()

result = sorted(a)

 

0-2. 각 원소의 첫 번째 인자를 기준으로 내림차순 정렬하고, 그 안에서 두 번째 인자를 기준으로 내림차순 정렬

a.sort(reverse = True)

result = sorted(a, reverse = True)

 

 

1-1. 각 원소의 첫 번째 인자를 기준으로 오름차순 정렬하고, 그 안에서 나머지는 등장 순서대로 정렬

a.sort(key=lambda x: x[0])

result = sorted(a, key = lambda x: x[0])

 

1-2. 각 원소의 두 번째 인자를 기준으로 오름차순 정렬하고, 그 안에서 나머지는 등장 순서대로 정렬

a.sort(key=lambda x: x[1])

result = sorted(a, key = lambda x: x[1])

 

 

2. 각 원소의 두 번째 인자를 기준으로 오름차순 정렬한 뒤, 첫 번째 인자를 기준으로 오름차순 정렬하기

a.sort(key = lambda x: (x[1], x[0]))

result = sorted(a, key = lambda x: (x[1], x[0]))

 

 

3-1. 각 원소의 첫 번째 인자를 기준으로 오름차순 정렬한 뒤, 두 번째 인자를 기준으로 내림차순 정렬하기

a.sort(key=lambda x: (x[0], -x[1]))

result = sorted(a, key = lambda x: (x[0], -x[1]))

 

3-2. 각 원소의 첫 번째 인자를 기준으로 내림차순 정렬한 뒤, 두 번째 인자를 기준으로 오름차순 정렬하기

a.sort(key=lambda x: (-x[0], x[1]))

result = sorted(a, key=lambda x: (-x[0],x[1]))

 

 

또한, 인자 외에도 다음과 같이 다른 조건을 줄 수도 있다.

 

1. 원소의 길이를 기준으로 오름차순 정렬하기(점점 길어지게)

a.sort(key = lambda x : len(x))

result = sorted(a, key = lambda x : len(x))

 

2. 원소의 길이를 기준으로 내림차순 정렬하기 (점점 짧아지게)

a.sort(key = lambda x : len(x), reverse = True)

result = sorted(a, key = lambda x: len(x), reverse = True)

 

반응형

댓글