본문 바로가기
2️⃣ 개발 지식 B+/코딩 테스트

[python] 유용한 문법

by ddubbu 2024. 9. 7.

 

iterator

items = [1, 2, 3, 4, 5]

filtered = list(filter(lambda i: i%2 == 0, items))
arr = map(int, input().split())

 

비트 연산자

# add
mask = 0
mask = mask | 1 << item_idx

# check: node
mask & (1 << node)

# check all visit (cnt개 모두 방문했는지)
mask == (1 << cnt) - 1:

 

 

기타

# 문자열 포매팅
var = 345.6789
s1 = f'{variable}' # 345.6789
s2 = f'{variable:.2f}'  # 345.68 # 주의! variable 콜론 뒤에 여백 반영되므로 꼭! 붙이기

# 숫자 문자열 리스트화
s = "101110"
arr = [int(char) for char in s] # [1, 0, 1, 1, 1, 0]

# zip, unzip
A = [1, 2, 3]
B = [4, 5, 6]
pairs = zip(A, B) # [[1,4], [2,5], [3,6]]
A, B = zip(*pairs) # unzip

# 2D 배열 초기화 조심
[[False]*N]*N # (X) 행마다 같은 참조값을 갖고 있어서 안됨

## 그 외 꿀팁
# for, if 한줄로
arr = [1, 2, 3, 4, 5]
짝수arr = [i for i in arr if i % 2 == 0]

# unpack str
 S = '123'
 print(*S)  # 1 2 3

# 내장함수
arr = [True, True, False]

any(arr) # True
all(arr) # False


# 딕셔너리
dict = { a: 1, b: 2, c: 3 }
dict['d'] # 에러 발생
dict.get('d') # None 리턴하면서 에러 미발생

# 코테 풀다가 런타임 에러 (RecursionError) 만나면
sys.setrecursionlimit() # 확장해주기

# for-else, while-else
# 조건문에만 else 가 있는게 아님. 반복문이 break문이 아니라 모든 순회 후 끝났을 경우 else 처리

for ...

else ...