2차원 배열 만들기
== 내장함수
- sum(): iterable 객체(List, DIct, Tuple 등)의 모든 원소의 합을 반환
- min(): 파라미터가2개 이상 들어왔을 때 가장 작은 값 반환
- max(): 가장 큰 값 반환
- sorted(): iterable 객체가 들어왔을 때, 정렬된 결과를 반환, 기본 오른차순
-
- 내림차순 sorted(data, reverse=True), List, Dict 정렬 sorted(data, key=lambda x : x["key"])키 지정 가능
-
- 해당키의 값으로 정렬, List, Tuple 정렬 sorted(data, key=lambda x : x[1]) 1번 인덱스로 정렬
== itertools 함수
from itertools import permutations
data = ["A", "B", "C"]
list(permutations(data) : n개 데이터 뽑아 일렬로 나열하는 모든 경우(순열)를 계산
list(permutations(data, 3))
combinations(조합): iterable 객체에서 n 개의 데이터를 뽑아 순서 고려하지 않고 나열하는 모든 경우(조합)
list(combinations(data,3))
product(중복순열): 모든 경우(순열)를 계산 (중복허용)
list(product(data, repeat=3))
list(combinations_with_replacement(data, 3)) 중복조합
- heapq
힙 기능. 다익스트라 최단 경로, 우선순위 큐 기능 구현
def hep_sort_sc(iterable):
h = []
res = []
for value in iterable:
heapq.heappush(h, value)
for i in range(len(h)):
res.append(heapq.heppop(h))
return res
== bisect: 파이썬에서 이진 탐색을 쉽게 구현할 수 있도록 bisect 라이브러리를 제공. "정렬된 배열"에서 특정한 원소를 찾아야할 때 매우 효과적으로 사용
- bisect_left(a, x): 정렬된 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메소드
- bisect_right(a, x): 정렬되 순서를 유지하면서 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메소드 (오른쪽에서부터 인덱스 시작)
from bisect import bisect_left
== collections
- deque: 파이썬에서 이거 사용해 큐 구현, 인덱싱, 슬라이싱 기능은 불가. 시작, 끝 부분 데이터 삽입 삭제 효과
popleft(): 첫 번째 원소 제거
pop(): 마지막 원소 제거
appendleft(x) : 첫 번째 인덱스에 원소 x를 삽입
append(x): akwlakr dlseprtmdp dnjsth ㅌ tkqdlq
q = deque([2, 3, 4])
Counter: iterable 객체 주어졌을 때, 객체 내부의 원소가 몇 번씩 등장했는지 카운트 결과를 Dict 형태로 반환
from collections import Counter
data = ["A", "A", "A", "z"]
counter = dict(Counter(data))
counter
== math: 자주 사용되는 수학적인 기능을 포함한 라이브러리
- factorial(x): x!값을 반환
- sqrt(x): x의 제곱근
- gcd(a, b): a와 b의 최대공약수 반환)
- pi, e 상수값
이 영상을 보고 정리하였습니다.
댓글