파이썬 정렬은 sort(), sorted()를 사용한다.
내장함수 sort()
- 이 메서드는 리스트 내 항목 간의 비교만 사용하여 정렬한다.
- 정렬 후 리스트는 수정된 상태로 유지된다.
- 반환값이 없다.
- 리스트 타입만 사용 가능
A = ['a', 'd', 'e', 'c', 'b']
#sort() 는 반환값이 없다.
print(A.sort()) # None
A = ['a', 'd', 'e', 'c', 'b']
A.sort()
print(A) # ['a', 'b', 'c', 'd', 'e']
B = ['가', '다', '바','나']
B.sort()
print(B) # ['가', '나', '다', '바']
C = [3,2,1,11,4]
C.sort()
print(C) # [1, 2, 3, 4, 11]
D = ['3','2','1','11','4']
D.sort()
print(D) # ['1', '11', '2', '3', '4']
내장함수 sorted()
- 리스트 내 항목들을 정렬하여 반환한다.
- 정렬 후 리스트는 원본 그대로 유지된다.
- 문자열, 리스트 모두 사용 가능.
- 문자열은 정렬된 결과를 배열로 반환하기 때문에, 결과는 문자열 변경 필요
A = ['a', 'd', 'e', 'c', 'b']
# 정렬값을 반환한다.
print(sorted(A)) # ['a', 'b', 'c', 'd', 'e']
# A 원본은 그대로 유지된다.
print(A) # ['a', 'd', 'e', 'c', 'b']
A = 'adecb'
#배열로 반환
print(sorted(A)) # ['a', 'b', 'c', 'd', 'e']
#원본 그대로
print("".join(A)) # adecb
#다른 변수에 저장
B = sorted(A)
print("".join(B)) # abcde
A = ['a', 'd', 'e', 'c', 'b']
#역정렬은 reverse=True 사용
print(sorted(A, reverse=True)) # ['e', 'd', 'c', 'b', 'a']
print(A) # ['a', 'd', 'e', 'c', 'b']
※ 역정렬은 이전 링크 글 참고
이차원배열 정렬
- List[ [A, B] ]에서 sorted()는 기본적으로 A의 값으로 정렬한다.
- B 의 값으로 정렬을 위해서는 Key 인수를 통해서 정렬한다.
A = [['a','하늘'], ['d','바람'],['c','구름']]
print(sorted(A)) # [['a', '하늘'], ['c', '구름'], ['d', '바람']]
print(sorted(A, key=lambda x:x[1])) # [['c', '구름'], ['d', '바람'], ['a', '하늘']]
print(A) # [['a', '하늘'], ['d', '바람'], ['c', '구름']]
▶ sort 연습 백준 문제 풀이
https://www.acmicpc.net/problem/2750
no = int(input())
lst = [int(input()) for _ in range(0, no)]
lst.sort()
print(*lst, sep="\n")
▶ sorted 연습 백준 문제 풀이
https://www.acmicpc.net/problem/5597
inputRow = [input() for _ in range(28)]
rtn = []
for i in range(1, 31):
if (inputRow.count(str(i)) == 0):
rtn.append(i)
sorted(rtn)
print(*rtn, sep="\n")
▶ sorted key 연습 백준 문제 풀이
https://www.acmicpc.net/problem/1181
N = int(input())
lst = [input() for _ in range(N)]
#리스트 중복제거 set() 사용
a=list(set(lst))
# 리스트 값의 길이가 짧고 사전순으로 정렬
rtn=sorted(a, key=lambda x: (len(x),x))
print(*rtn, sep="\n")
☞ 파이썬 자습서 참고 사이트
https://docs.python.org/ko/3/library/functions.html#sorted
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 Counter (with 백준 10815, 10816) (0) | 2024.05.28 |
---|---|
파이썬 람다 함수 lambda (with 백준 1181) (0) | 2024.05.27 |
파이썬 for while 조건문 (with 백준 2446, 2522) (2) | 2024.05.23 |
파이썬 리스트 배열의 얕은 복사(copy), 깊은 복사(deepcopy) 차이점 (0) | 2024.05.22 |
파이썬 리스트 배열 list (with 백준 5597, 10250) (0) | 2024.05.22 |