Python 생성기를 만들고 사용하는 방법

Python Saengseong Gileul Mandeulgo Sayonghaneun Bangbeob



개발자로 일하다 보면 중요하지 않은 데이터 값을 많이 다루어야 하는 경우가 많습니다. 해당 값을 저장하면 메모리가 많이 소모되어 코드 효율성이 떨어집니다. 그러나 Python에서는 생성기를 사용하여 이러한 손실을 방지할 수 있습니다.

생성기를 사용하면 특정 시퀀스의 값을 메모리에 모두 저장하지 않고도 대량 생성할 수 있습니다. 게다가, '생성기' 함수는 반복될 때 값을 생성하는 객체를 생성합니다. 따라서 Python 생성기를 직접 사용하고 싶다면 이 튜토리얼이 적합합니다. 여기에서는 Python 생성기를 만들고 사용하는 방법을 설명합니다.

Python 생성기를 만들고 사용하는 방법

Python 생성기는 주로 대규모 또는 거의 끝없는 데이터 세트를 처리할 때 데이터 시퀀스를 효과적으로 작업하는 데 사용됩니다. Python 생성기의 이점은 다음과 같습니다.







  1. 간결한: 코드 가독성을 향상시키는 간결한 방식으로 생성기를 쉽게 정의할 수 있습니다.
  2. 메모리 효율성: 단일 값을 동시에 생성하여 메모리를 덜 소비하고 효율성을 향상시킵니다.
  3. 내장 기능: Python에서 생성기에는 작업을 쉽게 하기 위해 next(), iter() 및 Yield와 같은 사전 정의된 함수가 있습니다.
  4. 일시 중지 및 재개 기능: 복잡한 알고리즘을 작업하는 동안 '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 생성기 표현식에 대한 모든 것을 설명했습니다. 모든 프로그래밍 측면에서 더 효율적이기 때문에 프로젝트에서 생성기 사용을 고려하는 경우 이러한 표현식을 사용해야 합니다.