[Python] 코테에 자주 나오는 메서드 & 라이브러리 정리

Joo·2023년 9월 21일

Python

목록 보기
2/2

1. 메서드

ord() / chr()

ord()는 문자열을 아스키코트로 변환, chr()는 아스키코드를 문자열로 변환하는 함수

chr(65)
>>> A

ord('A')
>>> 97

isalpha()는 문자열이면 True, 아니면 False 반환, isalnum()은 숫자면 True, 아니면 False 반환

text = '문자입니다.'
text.isalpha()
>>> True

num = 123
num.isalnum()
>>> True

filter(조건함수, 순회 가능 데이터)

filter는 특정 데이터를 추려낼 때 사용하는 함수. 출력시 자료형은 filter이므로 list형으로 변환해 사용해야 함.

string = '010101'
filtered = filter(lambda x: string[x] == '0', range(len(string)))
list(filtered)
>>> [0, 2, 4]

eval(수식)

eval은 문자열 수식을 인자로 받아 실제 계산을 해주는 함수

eval('5+4')
>>> 9

# round 값을 반올림하는 함수
eval('round(1,1)')
>>> 1

sort() / sorted

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]

max(a, b) / min(a, b)

a와 b를 비교해 max는 큰 값을, min은 작은 값을 반환한다.


2. 라이브러리

sys

sys는 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈이다.

import sys
sys.stdin.readline()

math

math는 수학 함수 기능을 제공한다.

import math
math.ceil(1.2) # 올림
>>> 2

math.floor(1.2) # 내림
>>> 1

math.abs(-1.2) # 절댓값
>>> 1.2

math.factorial(3) # 팩토리얼
>>> 6

itertools

순열, 조합을 계산할 수 있는 내장 라이브러리이다.

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)]

heapq

힙 구조를 사용할 수 있도록 제공한다.

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를 힙으로 변환

collections

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
profile
한 줄이 모여 책이 되듯 기록하기

0개의 댓글