코테용 파이썬 문법 (2) - 자주쓰는 라이브러리,람다

728x90

이진탐색

import bisect

a = [1, 2, 4, 4, 8]
x = 4

print(bisect.bisect_left(a, x))  # 2
#데이터x 를 삽입할 가장 왼쪽 인덱스
print(bisect.bisect_right(a, x))  # 4
#데이터 x를 삽입할 가장 오른쪽 인덱스

collections

from collections import Counter

counter = Counter(['red','blue','red','green','blue','blue'])

print(counter['blue']) # 3
print(counter['green']) # 1
print(dict(counter)) # 딕셔너리로 변환
# {'red' : 2, 'blue': 3, 'green': 1}

itertools (순열,조합 중요)

permutations

n 개의 데이터를 뽑아 나열 (순열)

from itertools import permutations

data = ['A', 'B', 'C']
result = list(permutations(data, 3))

# [("A", "B", "C"), ("A", "C", "B"), ("B", "A", "C"), ("B", "C", "A"), ("C", "A", "B"), ("C", "B", "A")]

combinations

n 개의 데이터를 뽑아 순서 없이 나열 (조합)

from itertools import combinations

data = ['A', 'B', 'C']
result = list(combinations(data, 3))

# [('A', 'B'), ('A', 'C'), ('B', 'C)]

deque

from collections import deque

a = [1, 2, 3, 4, 5]
dq = deque(a)
dq.rotate(2)  
#rotate 메소드 시계방향 회전 양수, 음수는 반시계
result = list(dq)
[4, 5, 1, 2, 3]

# 기본 사용법
dq.append(1) #오른쪽에 추가
dq.appendleft(1) #왼쪽에 추가
dq.pop() #오른쪽 제거
dq.popleft() #왼쪽 제거

lambda 식

# 기본적으로 바로 값 넣기 가능
a = (lambda x: x + 1)(3)
print(a)

# 함수처럼 사용 가능
a = lambda x : x + 35
print(a(5)) ## 40

# 거의 맵이랑 같이 이렇게 사용
list(map(lambda x: x + 10, [1, 2, 3]))
[11, 12, 13]

'언어 > Python' 카테고리의 다른 글

코테용 파이썬 문법 (1) - 기본문법  (0) 2023.03.29