Python Generators — 매우 효율적인 코드 작성!

Jan 19 2023
Python 생성기는 전체 시퀀스를 메모리에 저장하지 않고도 일련의 값을 반복할 수 있는 특수한 유형의 함수입니다. 대규모 데이터 세트로 작업하거나 무한한 값 시퀀스를 생성하기 위한 강력한 도구입니다.

Python 생성기는 전체 시퀀스를 메모리에 저장하지 않고도 일련의 값을 반복할 수 있는 특수한 유형의 함수입니다. 대규모 데이터 세트로 작업하거나 무한한 값 시퀀스를 생성하기 위한 강력한 도구입니다.

일반 함수와 다른 점은 무엇입니까?

생성기 함수는 일반 함수처럼 정의되지만 return 키워드를 사용하는 대신 yield 키워드를 사용합니다. 제너레이터 함수가 호출되면 함수에서 생성된 값을 반복하는 데 사용할 수 있는 이터레이터 객체를 반환합니다.

발전기를 사용하는 이유는 무엇입니까?

생성기의 주요 이점 중 하나는 메모리 효율적이라는 것입니다. 한 번에 하나의 값만 생성하기 때문에 많은 메모리를 사용하지 않고도 대규모 데이터 세트 또는 무한 시퀀스를 처리할 수 있습니다.

생성기의 또 다른 장점은 게으르다는 것입니다. 즉, 모든 값을 미리 생성하지 않고 필요할 때만 값을 생성합니다. 이는 대규모 데이터 세트로 작업하거나 무한 시퀀스를 생성하는 데 유용할 수 있습니다.

좋아요.. 어떻게 사용하나요?

다음 생성기 함수는 피보나치 수열을 생성합니다.

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2

for number in fibonacci():
    if number > 100:
        break
    print(number)

생성기는 목록 내포 또는 itertools 모듈과 같은 다른 Python 기능과 함께 사용하여 강력하고 표현력이 풍부한 코드를 생성할 수도 있습니다. 당신은 그것을 직접 시도 할 수 있습니다!

행운을 빕니다 실로