표준 라이브러리: 특정한 프로그래밍 언어에서 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리
https://docs.python.org/ko/3/library/index.html
파이썬 표준 라이브러리 — Python 3.10.4 문서
파이썬 표준 라이브러리 파이썬 언어 레퍼런스 는 파이썬 언어의 정확한 문법과 의미를 설명하고 있지만, 이 라이브러리 레퍼런스 설명서는 파이썬과 함께 배포되는 표준 라이브러리를 설명합
docs.python.org
파이썬에서 지원하는 표준 라이브러리는 다양하지만, 코딩 테스트를 준비하며 반드시 알아야 하는 라이브러리는 6가지 정도.
내장함수
print( ), input( )과 같은 기본 입출력 기능부터 sorted( ) 와 같은 정렬 기능을 포함하고 있는 기본 내장 라이브러리
파이썬 프로그램을 작성할 때 없어서는 안되는 필수적인 기능을 포함
# sum() 함수
result = sum([1, 2, 3, 4, 5])
# min() 함수
result = min([1, 2, 3, 4, 5])
# max() 함수
result = max([1, 2, 3, 4, 5])
# eval() 함수: 수식이 문자열 형식으로 들어오면 수식을 계산한 결과를 반환
result = eval("(3 + 5) & 7")
# sorted() 함수
result = sorted([8, 5, 3, 4, 1]) # 오름차순으로 정렬
result = sorted([8, 5, 3, 4, 1], reverse = True) # 내름차순으로 정렬
itertools
파이썬에서 반복되는 형태의 데이터를 처리하는 기능을 제공하는 라이브러리.
순열과 조합 라이브러리를 제공
from intertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3)) # 모든 순열 구하기
from intertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합 구하기
from intertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat=2)) # 2개를 뽑는 모든 순열 구하기 (중복 허용)
from intertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2)) # 2개를 뽑는 모든 조합 구하기(중복 허용)
heapq
힙(Heap) 기능을 제공하는 라이브러리
우선순위 큐 기능을 구현하기 위해 사용됨
- 힙에 원소를 삽입할 때는 heapq.heappush()
- 힙에서 원소를 꺼내고자 할 때는 heapq.heappop()
힙 정렬을 heapq로 구현하는 예제
import heapq
def heapsort(iterable):
h = []
result = []
# 모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, value)
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for i in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 8, 2, 4, 6, 8, 0])
파이썬에서는 최대 힙 제공 X
-> 원소의 부호를 임시로 변경하는 방식을 사용한다.
최대 힙을 구현하여 내림차순 힙 정렬을 구현하는 예시
import heapq
def heapsort(iterable):
h = []
result = []
# 모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, -value) # -value로 변경
# 힙에 삽입된 모든 원소를 차례대로 꺼내어 담기
for i in range(len(h)):
result.append(-heapq.heappop(h)) # -heapq로 변경
return result
result = heapsort([1, 3, 5, 7, 8, 2, 4, 6, 8, 0])
bisect
이진탐색 기능을 제공하는 라이브러리
- bisect_left(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드
- bisect_right(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메서드
from bisect import bisect_left, bisect_right
# 값이 [left_value, right_value]인 데이터의 개수를 반환하는 함수
def count_by_range(a, left_value, right_value):
right_index = bisect_left(a, right_value)
left_index = bisect_right(a, left_value)
return right_index - left_index
a = [, , , , ] # 리스트 선언
print(count_by_range(a, 4, 4))
collections
덱(deque), 카운터(Counter) 등의 유용한 자료구조를 포함하고 있는 라이브러리
- deque
- 시간 복잡도는 O(N)
- 리스트 자료형과 다르게 인덱싱, 슬라이싱 등 기능 사용 X
- 연속적으로 나열된 데이터의 시작 부분이나 끝부분에 데이터를 삽입하거나 삭제할 때는 매우 효과적으로 사용 가능
- 스택이나 큐의 기능을 모두 포함
- 첫 번째 원소 제거 popleft()
- 마지막 원소 제거 pop()
- 첫 번째 인덱스에 원소 x 삽입 시 appendleft(x)
- 마지막 인덱스 원소 삽입 시 append(x)
from collections import deque
data = deque([2, 3, 4])
data.appendleft(1)
data.append(5)
print(data)
print(list(data))
결과
deque([1, 2, 3, 4, 5])
[1, 2, 3, 4, 5]
- Counter
- 등장 횟수를 세는 기능
- 구체적으로 리스트와 같은 iterable 객체가 주어졌을 때 해당 객체 내부의 원소가 몇 번씩 등장했는지 알려줌
from collections import Counter
counter = Counter(['r', 'g', 'b', 'b'])
print(counter['b'])
math
필수적인 수학적 기능을 제공하는 라이브러리
팩토리얼, 제곱근, 최대공약수(GCD), 삼각함수 관련 함수부터 파이와 같은 상수 포함
import math
print(math.sqrt(7))
print(math.factorial(5))
print(math.gcd(21, 14))
출처: [이것이 취업을 위한 코딩 테스트다 with 파이썬] 서적
'코딩테스트 > Python' 카테고리의 다른 글
Python 배열 초기화 방법 (0) | 2022.05.01 |
---|---|
Python 2차원 리스트 90도 회전 함수 (0) | 2022.05.01 |
Python 로그 찍기 (0) | 2022.04.21 |
Python 시간과 메모리 측정 (0) | 2022.04.21 |
Python 연산자 '/'와 '//'의 차이 (0) | 2022.04.12 |