* 유용한 표준 라이브러리
- 내장 함수
: 기본적인 함수 제공. import문 없이 사용 가능. print() 등
# sum()
result = sum([1, 2, 3, 4, 5])
print(result) # 15 출력
# min(), max()
min_result = min(7, 3, 5, 2)
max_result = max(7, 3, 5, 2)
print(min_result, max_result) # 2 7 출력
# eval(): 식이 있을 때 계산한 결과를 수 형태로 반환한다.
result = eval("(3+5)*7")
print(result) # 56 출력
# sorted()
result = sorted([9, 1, 8, 5, 4])
reverse_result = sorted([9, 1, 8, 5, 4], reverse=True)
print(result) # [1, 4, 5, 8, 9]
print(reverse_result) # [9, 8, 5, 4, 1]
# sorted() with key
array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(array, key=lambda x: x[1], reverse=True) # 각 원소의 두 번째 원소를 기준으로 정렬
print(result) # [('이순신', 75), ('아무개', 50), ('홍길동', 35)]
- itertools
: 반복되는 형태의 데이터를 처리하기 위한 유용한 기능 제공
특히 순열, 조합 라이브러리 자주 사용
순열: 서로 다른 n개에서 서로 다른 r개를 선택하여 일렬로 나열하는 것 (순서 고려 o) -> nPr
from itertools import permutations
data = ['A', 'B', 'C'] # 데이터 준비
result = list(permutations(data, 3)) # 모든 순열 구하기
print(result)
# 실행 결과
# [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
조합: 서로 다른 n개에서 순서에 상관 없이 서로 다른 r개를 선택하는 것 (순서 고려 x) -> nCr
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2)) # 2개를 뽑는 모든 조합 구하기
print(result)
# 실행 결과
# [('A', 'B'), ('A', 'C'), ('B', 'C')]
중복 순열
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat=2)) # 2개를 뽑는 모든 순열 구하기(중복 허용)
print(result)
중복 조합
from itertools import combinations_with_replacement
data = ['A', 'B', 'C']
result = list(combinations_with_replacement(data, 2)) # 2개를 뽑는 모든 조합 구하기(중복 허용)
print(result)
- heapq
: 힙(Heap) 자료구조 제공
일반적으로 우선순위 큐 기능을 구현하기 위해 사용
- bisect
: 이진 탐색(Binary Search) 기능 제공
- collections
: 덱(deque), 카운터(Counter) 등 유용한 자료구조 포함
Counter: 등장 횟수를 세는 기능 제공. 리스트와 같은 반복 가능한 객체가 주어졌을 때 내부의 원소가 몇 번씩 등장했는지를 알려준다.
from collections import Counter
counter = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
print(counter['blue']) # 'blue'가 등장한 횟수 출력: 3
print(counter['green']) # 1
print(dict(counter)) # 사전 자료형으로 반환. {'red': 2, 'blue': 3, 'green': 1}
- math
: 필수적인 수학적 기능 제공
gcd() 함수: 최대 공약수 구하기
import math
# 최대 공배수를 구하는 함수 (a*b를 최대 공약수로 나눔)
def lcm(a, b):
return a * b // math.gcd(a, b)
a = 21
b = 14
print(math.gcd(21, 14)) # 최대 공약수 계산: 7
print(lcm(21, 14)) # 최소 공배수 계산: 42
https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PL4yUyjlDsKKep7CVBfp5ZU-vRHnrGQNRv&index=3
'Python' 카테고리의 다른 글
| [python] 입력 여러 개 받기 (0) | 2024.05.11 |
|---|---|
| [python] list에 map 사용 예제 (0) | 2023.07.17 |
| [python] 기본 문법 정리 - 기본 입출력 / 조건문 / 반복문 / 함수와 람다 표현식 (0) | 2023.07.14 |
| [python] 기본 문법 정리 - 수 / 리스트 / 문자열 / 튜플 / 사전 / 집합 자료형 (0) | 2023.07.13 |