Python

Python Generator

Python Generator
I dette emnet vil vi lære Python Generator.

Definisjon: En generator er som en normal funksjon som genererer en rekke verdier ved hjelp av utbytte nøkkelord. Den returnerer ett objekt om gangen. Den bruker en iterator internt. For å få tilgang til neste element neste () funksjonen brukes, eller vi kan bruke den til en løkke. Hvis vi prøver å få tilgang til verdien utenfor området, hever den a StoppIterasjon feil.

Vi vil se noen eksempler for å forstå bedre

Eks: generatorfunksjon for verdiområde

def range_fun (n):
x = 0
mens x < n:
avkastning x
x + = 1
y = rekkevidde (3)
#call bruker for loop
skriv ut ('Generer verdier ved hjelp av neste () metode')
for jeg innen rekkevidde (3):
skrive ut (i)
#call generator ved hjelp av neste metode
print ('Generer verdier ved hjelp av loop-metoden')
skriv ut (neste (y))
skriv ut (neste (y))
skriv ut (neste (y))
skriv ut (neste (y)) # Stopp Iterasjon unntak vil bli hevet

Eks: Generatorfunksjon for Fibonacci-serien

def fib_fun (n):
x, y = 0, 1
mens x < n:
avkastning x
x, y = y, x + y
z = fib_fun (6) #generatorobjekt
skriv ut ('Generer verdier ved hjelp av neste () metode')
skriv ut (neste (z))
skriv ut (neste (z))
skriv ut (neste (z))
skriv ut (neste (z))
skriv ut (neste (z))
skriv ut (neste (z))
print ('Generer verdier ved hjelp av loop-metoden')
for jeg i fib_fun (6):
skrive ut (i)

Eks: Generatorfunksjon for å lage verdiområde gitt start- og sluttverdier.

def my_range (start, slutt):
gjeldende = start
mens den er aktuell < end:
avkastningsstrøm
gjeldende + = 1
skriv ut ('Generer verdier ved hjelp av neste () metode')
nums = my_range (1,5)
skriv ut (neste (tall))
skriv ut (neste (tall))
skriv ut (neste (tall))
skriv ut (neste (tall))
print ('Generer verdier ved hjelp av loop-metoden')
for num in my_range (1,5):
skriv ut (num)

Eks: Generator for å multiplisere hvert tall (mindre enn et tall) med et tall

def gen_mulby_num (max, num):
n = 0
mens n < max:
avkastning n * num
n + = 1
for jeg i gen_mulby_num (5,3):
skrive ut (i)

Eks: Generator for å finne kube for verdiområde

def gen_mulby_num (max, num):
n = 0
mens n < max:
avkastning n * num
n + = 1
for jeg i gen_mulby_num (5,3):
skrive ut (i)

Eks: flere generatorer: finn kvadratet med partall som genereres fra et tall

Generator 1: generer jevne verdier fra et gitt tall

Generator 2: generer kvadrattall fra generator1-verdier

def gen_even (m):
n = 0
mens n < m:
hvis n% 2 == 0:
avkastning n
n + = 2
def gen_square (nums):
for num in nums:
gi 2 * antall
for n i gen_square (gen_even (15)):
skrive ut (n)


Eks: Flere generatorer: lag fibnacci-serien og legg til verdi 10 hvert tall.

Generator1: genererer Fibonacci-serier fra et gitt nummer

Generator2: legg til hvert tall med 10 fra generator1

def gen_fib (n):
x, y = 0, 1
mens x < n:
avkastning x
x, y = y, x + y
def gen_add_10 (nums):
for num in nums:
gi 10 + antall
for n i gen_add_10 (gen_fib (5)):
skrive ut (n)


Generatorforståelser:

Generatorforståelser ligner på listeforståelser der listen bruker firkantede parenteser; dette bruker normal parentes.

Eks:

nums = (i for i innen rekkevidde (10))
skriv ut (type (nums))
skriv ut (liste (nums))

Forskjellen mellom generator og normal funksjon:

  1. En generator gir verdier ved hjelp av utbytte nøkkelord der normal funksjon bruker komme tilbake nøkkelord
  2. Generator starter fra der den stoppet når den ble ringt neste gang. Normalfunksjonen utfører alle utsagn hver gang.
  3. Generator sparer minne da den returnerer en verdi om gangen. Så vi kan bruke den til å generere uendelige verdier.

Konklusjon:

Generator er veldig nyttig når vi håndterer store / store data. På et gitt tidspunkt har den bare ett enkelt stykke data i stedet for hele data. Generatorkonsept betraktes som et avansert konsept i python.

Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...