[파이썬] 제너레이터와 루프의 결합

파이썬은 제너레이터(generator)라는 강력한 기능을 제공하여 반복 작업을 더욱 효율적으로 처리할 수 있게 해줍니다. 제너레이터는 이터레이터를 생성하는 함수로, 필요한 데이터를 한 번에 모두 생성하는 대신, 필요에 따라 각각의 값을 생성하여 사용할 수 있습니다. 이를테면, 큰 파일을 한 번에 로드하지 않고, 한 줄씩 읽어오는 등의 작업을 할 때 제너레이터는 매우 유용합니다.

또한, 제너레이터는 루프와 결합하여 사용할 수 있습니다. 이를 통해 반복 작업을 더욱 간결하게 처리할 수 있습니다. 이번 포스트에서는 파이썬의 제너레이터와 루프를 효율적으로 결합하는 방법에 대해 알아보겠습니다.

예시 1: 제너레이터를 사용한 루프

def even_numbers(n):
    for i in range(n):
        if i % 2 == 0:
            yield i

# 제너레이터를 루프와 결합하여 사용
for num in even_numbers(10):
    print(num)

위 예시에서는 even_numbers라는 제너레이터 함수를 정의하고, yield 키워드를 사용하여 짝수 값을 생성하여 반환합니다. 이후에는 even_numbers(10)을 루프와 결합하여 사용하였습니다. 이를 실행하면 0부터 8까지의 짝수 값이 출력됩니다.

예시 2: 리스트 컴프리헨션과 제너레이터의 결합

even_numbers = (i for i in range(10) if i % 2 == 0)
for num in even_numbers:
    print(num)

위 예시에서는 리스트 컴프리헨션과 제너레이터를 결합하여 짝수 값을 생성합니다. (i for i in range(10) if i % 2 == 0)는 0부터 9까지의 숫자 중에서 짝수만 가져오는 제너레이터입니다. 이를 통해 반복 작업을 간결하게 처리할 수 있습니다.

결론

제너레이터와 루프의 결합은 파이썬에서 반복 작업을 효율적으로 처리하는 방법 중 하나입니다. 제너레이터를 사용하면 필요한 데이터를 효율적으로 생성하고, 루프와 결합하여 반복 작업을 더욱 간결하게 처리할 수 있습니다. 제너레이터와 루프를 적절하게 활용하여 파이썬 코드를 작성해보세요!