ord()는 문자열을 아스키코트로 변환, chr()는 아스키코드를 문자열로 변환하는 함수
chr(65)
>>> A
ord('A')
>>> 97
text = '문자입니다.'
text.isalpha()
>>> True
num = 123
num.isalnum()
>>> True
filter는 특정 데이터를 추려낼 때 사용하는 함수. 출력시 자료형은 filter이므로 list형으로 변환해 사용해야 함.
string = '010101'
filtered = filter(lambda x: string[x] == '0', range(len(string)))
list(filtered)
>>> [0, 2, 4]
eval은 문자열 수식을 인자로 받아 실제 계산을 해주는 함수
eval('5+4')
>>> 9
# round 값을 반올림하는 함수
eval('round(1,1)')
>>> 1
sort()는 원래 리스트의 정렬을 바꾸고, None을 반환한다.
sorted(리스트)는 새로 정렬된 리스트를 반환하고, 원래 리스트는 유지된다.
디폴트는 오름차순, reverse=True 옵션을 사용하면 내림차순 정렬
lst = [5, 1, 3, 6]
lst.sort()
>>> None # lst = [1, 3, 5, 6]으로 정렬됨
sorted([5, 1, 3, 6])
>>> [1, 3, 5, 6]
a와 b를 비교해 max는 큰 값을, min은 작은 값을 반환한다.
sys는 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.
import sys
sys.stdin.readline()
math는 수학 함수 기능을 제공한다.
import math
math.ceil(1.2) # 올림
>>> 2
math.floor(1.2) # 내림
>>> 1
math.abs(-1.2) # 절댓값
>>> 1.2
math.factorial(3) # 팩토리얼
>>> 6
순열, 조합을 계산할 수 있는 내장 라이브러리이다.
items = range(3)
from itertools import permutations # 순열
list(permutations(items, 2))
>>> [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
from itertools import combinations # 조합
list(combinations(items, 2))
>>> [(0, 1), (0, 2), (1, 2)]
힙 구조를 사용할 수 있도록 제공한다.
import heapq
# 최소 힙 생성
heap = []
heapq.heappush(heap, 1) # 원소 삽입
>>> [1]
heapq.heappush(heap, 2)
>>> [1, 2]
heapq.heappop(heap) # 가장 작은 값을 제거하고 반환
>>> 1
heapq.heappushpop(heap, 3) # 힙에 원소를 삽입하고 가장 작은 원소를 반환
>>> 2
lst = [1, 5, 2]
heapq.heapify(lst) # 리스트 lst를 힙으로 변환
dict, list, set, tuple 일반 자료형의 컨테이너 타입을 발전시킨 형태의 라이브러리
deque
양방향에서 삽입과 제거가 쉽다.
list의 경우 첫 번째 원소를 삽입하거나 제거하는데 O(n)의 시간이 걸려 비효율적이지만, deque는 O(1)의 시간이 걸려 효율적인 구조를 가진다.
from collections import deque
q = deque([])
q.append(1) # 마지막에 원소 삽입
>>> [1]
q.append(2)
>>> [1, 2]
q.pop() # 마지막 원소 제거 및 반환
>>> 2
q.appendleft(0) # 첫 번째 원소 삽입
>>> [0, 1]
q.popleft() # 첫 번째 원소 제거 및 반환
>>> 0