Iterable🔗 [Python의 꽃] 리스트 컴프리헨션(List Comprehension) - codingDNA
for문/append()와 리스트 컴프리헨션 실행 속도 비교
[i * j for i in range(10) for j in range(10) if i < j]
map🔗 Python의 map() filter() reduce() 사용 방법 정리 - GONIGONI!
map(function, iterable)
n, m = map(int, input().split()
arr = [*map(int, input().split())]
filterfilter(function, iterable)
map과 동일한 인자로 전달된 함수에 요소를 반복적으로 입력받지만, 함수의 반환값이 True인 입력만 반환한다.map은 반환값을 그대로 반환하지만, filter는 True로 평가된 입력값을 반환하는 것을 알 수 있다.
map, filter 실행 결과 비교
from functools import reduce
reduce(function, iterable, initializer=None)
reduce, for문 실행 결과 비교
💡내부적인 병렬처리를 기대했지만 실행시간이 비슷했다.
reduce 병렬 처리 패턴
🔗Common Parallel Patterns - Springer Nature Link
🔗 파이썬의 yield 키워드와 제너레이터(generator) - DaleSeo
yield 키워드를 이용한 특별한 함수로 반복 가능 객체인 generator를 반환한다.generator 객체를 반환한다.n에 5를 입력하여 호출하고, 반복하면 다섯 번 반환 후 종료됨을 확인할 수 있다.
문자 generator
next() 내장 함수로 반복 객체의 다음 요소를 반환 받을 수 있다.
더 이상 yield 할 수 없다면 StopIteration 에러를 발생시킨다.
다음과 같이 끝없이 무언가를 생성하는 형식으로 작성할 수 있다.
from random import randint
def generate_char():
'''
랜덤 영어 소문자 반환
'''
while True:
yield chr(randint(97, 122))