Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- web
- ML
- 자료구조
- FineGrained
- Front
- CV
- nerf
- nlp
- Python
- Meta Learning
- dl
- GAN
- Depth estimation
- 알고리즘
- SSL
- 머신러닝
- FGVC
- pytorch
- classification
- Torch
- Vision
- computervision
- 딥러닝
- clean code
- math
- PRML
- cs
- REACT
- algorithm
- 3d
- Today
- Total
KalelPark's LAB
[ CLEAN CODE ] itertools 내장 라이브러리 알아보기 본문
itertools
효율적인 루핑을 위한 이터레이터를 만드는 함수이다.
자체적으로 혹은 조합하여 유용하고 빠르고 메모리 효율적인 도구의 핵심 집합을 표준화합니다.
순수 파이썬에서 간결하고 효율적으로 특수화된 도구를 구성할 수 있도록 이터레이터 대수(iterator algebra)를 형성합니다.
chain : 여러 iteration을 하나의 순차적인 이터레이터로 합칠 때 사용합니다.
it = itertools.chain([1, 2, 3], [4, 5, 6])
for i in it:
print(i)
print(list(it))
repeat : 한 값을 게속 반복해 내놓고 싶을 때 사용합니다.
it = itertools.repeat("안녕", 3)
print(list(it))
cycle : 어떤 이터레이터가 원소들을 계속 반복해서 놓고 싶을 때, 사용합니다.
it = itertools.cycle([1, 2])
result = [next(it) for _ in range(10)]
tee : 한 이터레이터를 병렬적으로 만들고 싶을 때 사용합니다.
it1, it2, it3 = itertools.tee(["하나", "둘"], 3)
print(list(it1))
print(list(it2))
print(list(it3))
zip_longest : zip 내장 함수의 변종으로, 여러 이터레이터 중 짧은 list를 다 소모하는 경우, fillvalue로 값을 채워 연산을 진행합니다.
keys = ["하나", "둘", "셋"]
values = [1, 2]
it = itertools.zip_longest(keys, values, fillvalue = "없음")
longest = list(it)
print(longest)
takewhile : 이터레이터에서 False로 변환되기 전까지 출력을 진행합니다. (dropwhile은 반대의 경우입니다.)
values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
less_than_seven = lambda x: x < 7
it = itertools.takewhile(less_than_seven, values)
print(list(it))
Reference
https://docs.python.org/ko/3/library/itertools.html
'Python > CLEAN CODE' 카테고리의 다른 글
[CLEAN CODE] Attribute 관리하기, Getter, Setter (0) | 2023.03.20 |
---|---|
[ CLEAN CODE ] Tuple, namedtuple, logging, class method의 차이 (0) | 2023.03.18 |
[ CLEAN CODE ] Comparison, Generator? (0) | 2023.03.15 |
[ CLEAN CODE ] Dictionary defaultdict, Closure in local function? (1) | 2023.03.14 |
[ CLEAN CODE ] 왈러스 연산자, ZIP, Packing, Unpacking? (0) | 2023.03.13 |
Comments