생성기를 사용하면 특정 시퀀스의 값을 메모리에 모두 저장하지 않고도 대량 생성할 수 있습니다. 게다가, '생성기' 함수는 반복될 때 값을 생성하는 객체를 생성합니다. 따라서 Python 생성기를 직접 사용하고 싶다면 이 튜토리얼이 적합합니다. 여기에서는 Python 생성기를 만들고 사용하는 방법을 설명합니다.
Python 생성기를 만들고 사용하는 방법
Python 생성기는 주로 대규모 또는 거의 끝없는 데이터 세트를 처리할 때 데이터 시퀀스를 효과적으로 작업하는 데 사용됩니다. Python 생성기의 이점은 다음과 같습니다.
- 간결한: 코드 가독성을 향상시키는 간결한 방식으로 생성기를 쉽게 정의할 수 있습니다.
- 메모리 효율성: 단일 값을 동시에 생성하여 메모리를 덜 소비하고 효율성을 향상시킵니다.
- 내장 기능: Python에서 생성기에는 작업을 쉽게 하기 위해 next(), iter() 및 Yield와 같은 사전 정의된 함수가 있습니다.
- 일시 중지 및 재개 기능: 복잡한 알고리즘을 작업하는 동안 'Yield' 기능을 사용하여 생성기 작동을 일시 중지하고 다시 시작할 수 있습니다.
Python에서는 다양한 방법으로 생성기를 만들고 사용할 수 있습니다. 이 섹션을 더 나누어서 다양한 예제를 사용하여 구현을 보여드리겠습니다. 먼저 기본 구문을 살펴보겠습니다.
데프 기능 이름 ( ) :
생산하다 표현
'def'는 함수를 정의하고 'yield'는 'generator' 함수를 만드는 데 사용됩니다. 그러나 또 다른 방법은 단 한 줄 표현식만 사용하여 생성기를 만드는 데 도움이 됩니다.
문자열을 생성하는 생성기 함수
어떤 값을 산출하는 생성기 함수를 정의해 보겠습니다.
데프 발전기 ( ) :
생산하다 '이것은 발전기입니다'
~을 위한 값 ~에 발전기 ( ) :
인쇄 ( 값 )
'for' 루프를 사용하여 반복하면 프로그램은 'print' 기능을 사용하여 인쇄할 수 있는 지정된 값을 생성합니다.
카운터를 만드는 생성기 기능
다음 프로그램은 일련의 숫자를 생성하는 생성기 함수의 예입니다.
데프 내 발전기 ( N ) :카운터 = 0
~하는 동안 카운터 < N:
생산하다 카운터
카운터 + = 1
~을 위한 카운터 ~에 내 발전기 ( 10 ) :
인쇄 ( 카운터 )
예를 들어, 입력이 10인 경우 이 코드를 컴파일하면 0부터 9까지의 값을 얻게 됩니다.
생성기 함수를 사용한 피보나치 수열
이제 프로그래밍의 가장 기본적인 계열인 피보나치 계열을 사용해 보겠습니다.
데프 시리즈_피보나치 ( 한계 ) :나 , 제이 = 0 , 1
~하는 동안 나 < 한계:
생산하다 나
나 , 제이 = 제이 , 나는 + J
ㅏ = 시리즈_피보나치 ( 6 )
인쇄 ( 다음 ( ㅏ ) )
인쇄 ( 다음 ( ㅏ ) )
인쇄 ( 다음 ( ㅏ ) )
인쇄 ( 다음 ( ㅏ ) )
인쇄 ( 다음 ( ㅏ ) )
인쇄 ( 다음 ( ㅏ ) )
코드를 실행하면 다음과 같이 시리즈를 얻을 수 있습니다.
먼저 'a'라는 개체를 만들고 원하는 입력을 인수로 사용하여 '생성기' 함수를 호출합니다.
next() 키워드는 수동 반복자입니다. next(a)를 사용할 때마다 'a'의 값 하나를 반복합니다. 그러나 다음 예와 같이 'for' 루프를 사용하여 'a'의 모든 값을 한 번에 인쇄할 수 있습니다.
next() 함수 대신 'for' 루프 사용:
데프 시리즈_피보나치 ( 한계 ) :나 , 제이 = 0 , 1
~하는 동안 나 < 한계:
생산하다 나
나 , 제이 = 제이 , 나는 + J
ㅏ = 시리즈_피보나치 ( 6 )
~을 위한 값 ~에 ㅏ :
인쇄 ( 값 )
코드 실행 결과는 이전 프로그램을 작성하는 대체 방법이므로 다르지 않습니다.
Python의 생성기 표현식이란 무엇입니까?
Python 생성기 표현식은 선형 표현식을 사용하여 '생성기' 함수를 간결하게 생성하는 방법입니다. 간단한 구문은 다음과 같습니다.
( 표현 ~을 위한 변하기 쉬운 ~에 반복 가능한 만약에 상태 )예를 들어, 'n'이 입력 값일 때 0부터 'n'까지 홀수의 제곱을 계산하는 생성기 표현식을 만듭니다.
홀수_제곱 = ( x * x ~을 위한 엑스 ~에 범위 ( 10 ) 만약에 x% 2 != 0 )~을 위한 값 ~에 홀수_제곱:
인쇄 ( 값 )
이전 코드는 다음과 같은 결과를 생성합니다.
결론
이것은 Python 생성기를 만들고 사용하는 다양한 방법에 관한 것입니다. Python 생성기 표현식에 대한 모든 것을 설명했습니다. 모든 프로그래밍 측면에서 더 효율적이기 때문에 프로젝트에서 생성기 사용을 고려하는 경우 이러한 표현식을 사용해야 합니다.