[Better Way #33] yield from을 사용해 여러 제너레이터를 합성하라
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. yield from 식 파이썬 인터프리터가 사용자 대신 for 루프를 내포시키고 yield 식을 처리하도록 한다. 여러 제너레이터를 모아서 하나의 제너레이터...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. yield from 식 파이썬 인터프리터가 사용자 대신 for 루프를 내포시키고 yield 식을 처리하도록 한다. 여러 제너레이터를 모아서 하나의 제너레이터...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 제너레이터 식 () roots = ((x, x**0.5) for x in it) print(next(roots)) 리스트 컴프리헨션의 문제점: 입력이 커지면...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 이터레이터의 StopIteration def normalize(numbers): # -- numbers가 이터레이터인 경우, total = sum(nu...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. # -- 리스트를 반환하는 함수 def index_words(text): result = [] if text: result.append(0...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 대입식(:=)을 통해 컴프리헨션이나 제너레이터 식의 조건 부분에서 사용한 값을 다른 위치에서 재사용할 수 있다. def get_batches(c...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 컴프리헨션 사용 시 권장 사항 컴프리헨션에 들어가는 하위 식이 세 개 이상 되지 않도록 제한하는 것을 권장한다. ex) (조건문 ...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 04. Comprehensions and Generators”을 읽고 정리한 내용입니다. 리스트, 딕셔너리, 집합 등을 다룰 때 map과 filter를 사용하기보다는 컴프리헨션을 사용하는 것을 권장한다. map, filter 사용 버전 ...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. 데코레이터 (decorator) 자신이 감싸고 있는 함수가 호출되기 전과 후에 코드를 추가로 실행해준다. 즉, 자신이 감싸고 있는 함수의 입력 인자, 반환 값, 함수에서 발생한...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. * - 위치 기반 인자의 마지막 & 키워드만 사용하는 인자의 시작 # ignore_overflow와 ignore_zero_division은 키워드를 사용해서만 지정할 수 있음 def safe_d...
본문은 “파이썬 코딩의 기술 (Effective Python, 2판)”의 “Chapter 03. Functions”을 읽고 정리한 내용입니다. 디폴트 인자 디폴트 인자 값은 그 인자가 포함된 함수 정의가 속한 모듈이 로드되는 시점에 단 한 번만 평가 된다. 동적인 값(ex. {}, [], datetime.now() 등)의 경우, 이상...