Com crear i utilitzar generadors de Python

Com Crear I Utilitzar Generadors De Python



Mentre treballeu com a desenvolupador, sovint heu de treballar amb molts valors de dades insignificants. L'emmagatzematge d'aquests valors consumeix un tros de memòria, reduint l'eficiència del vostre codi. Tanmateix, a Python, podeu utilitzar generadors per evitar aquesta pèrdua.

Amb els generadors, podeu produir en massa els valors d'una seqüència determinada sense emmagatzemar-los del tot a la memòria. A més, la funció 'generador' crea un objecte que genera valors quan s'itera. Per tant, si voleu posar-vos a les vostres mans en els generadors de Python, aquest tutorial és per a vosaltres. Aquí, explicarem com crear i utilitzar els generadors de Python.

Com crear i utilitzar els generadors de Python

Els generadors de Python s'utilitzen per treballar les seqüències de dades de manera eficaç, principalment quan es tracta de conjunts de dades grans o gairebé infinits. Els avantatges dels generadors Python són:







  1. Concís: Podeu definir els generadors fàcilment d'una manera concisa que millora la llegibilitat del codi.
  2. Eficient de memòria: Generen un únic valor simultàniament que consumeix menys memòria i millora l'eficiència.
  3. Funcions integrades: A Python, els generadors tenen funcions predefinides com next(), iter() i yield per facilitar el seu funcionament.
  4. Funció de pausa i reinici: Mentre treballeu amb algorismes complexos, podeu utilitzar la funció 'rendiment' per aturar i reprendre el funcionament dels generadors.

Podeu crear i utilitzar generadors de diverses maneres a Python. Dividirem encara més aquesta secció per demostrar la seva implementació mitjançant diferents exemples. Primer, fem una ullada a la sintaxi bàsica:



def nom_funció ( ) :
rendiment expressió

El 'def' defineix una funció i el 'rendiment' s'utilitza per construir la funció 'generador'. Tanmateix, un altre mètode també ajuda a crear un generador utilitzant només expressions d'una línia.



Funció de generador per produir una cadena

Definim una funció generadora per obtenir algun valor:





def generador ( ) :
rendiment 'Això és un generador'
per valor en generador ( ) :
imprimir ( valor )

Quan hi iterem mitjançant un bucle 'for', el programa genera els valors especificats que podeu imprimir mitjançant la funció 'imprimir'.



Funció de generador per fer un comptador

El programa següent és l'exemple de la funció generadora per generar una seqüència de números:

def el meu_generador ( n ) :
comptador = 0
mentre comptador < n:
rendiment comptador
comptador + = 1
per comptador en el meu_generador ( 10 ) :
imprimir ( comptador )

Per exemple, si l'entrada és 10, obtindreu valors de 0 a 9 en compilar aquest codi.

Sèrie de Fibonacci utilitzant la funció generadora

Utilitzem ara la sèrie de Fibonacci, que és la sèrie més bàsica en programació:

def sèrie_fibonacci ( límit ) :
i , j = 0 , 1
mentre i < límit:
rendiment i
i , j = j , i + j

a = sèrie_fibonacci ( 6 )

imprimir ( Pròxim ( a ) )
imprimir ( Pròxim ( a ) )
imprimir ( Pròxim ( a ) )
imprimir ( Pròxim ( a ) )
imprimir ( Pròxim ( a ) )
imprimir ( Pròxim ( a ) )

Obtenim la sèrie de la següent manera executant el codi:

Primer, creeu un objecte anomenat 'a' i crideu a la funció 'generador' amb l'entrada desitjada com a argument.

La paraula clau next() és un iterador manual. Cada vegada que fem servir next(a), s'itera sobre un valor de 'a'. Tanmateix, podem utilitzar el bucle 'for' per imprimir tots els valors de 'a' alhora, tal com es mostra a l'exemple següent:

Utilitzant el bucle 'for' en lloc de la funció next():

def sèrie_fibonacci ( límit ) :
i , j = 0 , 1
mentre i < límit:
rendiment i
i , j = j , i + j

a = sèrie_fibonacci ( 6 )
per valor en a:
imprimir ( valor )

El resultat d'executar el codi no diferirà perquè és un mètode alternatiu per escriure el programa anterior:

Què són les expressions generadores a Python?

Les expressions generadores de Python són una manera de crear les funcions 'generadores' de manera concisa utilitzant expressions lineals. Aquí teniu la sintaxi senzilla:

( expressió per variable en iterable si condició )

Per exemple, creeu una expressió generadora per calcular els quadrats dels nombres senars de 0 a 'n' quan 'n' és el valor d'entrada.

quadrats_senars = ( x * x per x en rang ( 10 ) si x % 2 != 0 )
per valor en quadrats_senars:
imprimir ( valor )

El codi anterior dóna el resultat següent:

Conclusió

Això tracta sobre els diferents mètodes per crear i utilitzar els generadors de Python. Hem explicat tot sobre les expressions del generador de Python. Hauríeu d'utilitzar aquestes expressions si considereu utilitzar generadors en qualsevol dels vostres projectes perquè són més eficients en tots els aspectes de la programació.