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