Python generátorok létrehozása és használata

Python Generatorok Letrehozasa Es Hasznalata



Fejlesztői munka közben gyakran sok jelentéktelen adatértékkel kell dolgoznia. Ezen értékek tárolása nagy mennyiségű memóriát fogyaszt, csökkentve a kód hatékonyságát. A Pythonban azonban generátorokat használhat a veszteség elkerülésére.

A generátorokkal tömegesen állíthatja elő egy adott sorozat értékeit anélkül, hogy azokat a memóriában tárolná. Ezenkívül a „generátor” függvény létrehoz egy objektumot, amely értékeket generál az ismétlődés során. Tehát, ha szeretné megismerni a Python generátorokat, ez az oktatóanyag az Ön számára készült. Itt elmagyarázzuk, hogyan kell létrehozni és használni a Python generátorokat.

A Python generátorok létrehozása és használata

A Python generátorok az adatszekvenciák hatékony feldolgozására szolgálnak, főleg nagy vagy csaknem végtelen adatkészletek kezelésekor. A Python generátorok előnyei a következők:







  1. Tömör: A generátorokat egyszerűen, tömören definiálhatja, ami javítja a kód olvashatóságát.
  2. Hatékony memória: Egyszerre egyetlen értéket generálnak, ami kevesebb memóriát fogyaszt és javítja a hatékonyságot.
  3. Beépített funkciók: A Pythonban a generátorok előre meghatározott függvényekkel rendelkeznek, mint például a next(), az iter() és a hozam, hogy megkönnyítsék a munkájukat.
  4. Szünet és folytatás funkció: Az összetett algoritmusokon végzett munka során a „hozam” funkcióval szüneteltetheti és folytathatja a generátorok működését.

A Pythonban különféle módon hozhat létre és használhat generátorokat. Ezt a részt tovább osztjuk, hogy különböző példákon keresztül bemutathassuk a megvalósítását. Először is nézzük meg az alapvető szintaxist:



def funkció_név ( ) :
hozam kifejezés

A „def” egy függvényt határoz meg, a „hozam” pedig a „generátor” függvény felépítésére szolgál. Azonban egy másik módszer is segít létrehozni egy generátort, amely csak egysoros kifejezéseket használ.



Generátor függvény karakterlánc létrehozására

Adjunk meg egy generátorfüggvényt, hogy valamilyen értéket adjunk:





def generátor ( ) :
hozam 'Ez egy generátor'
számára érték ban ben generátor ( ) :
nyomtatás ( érték )

Amikor egy „for” ciklussal iterálunk rajta, a program előállítja a megadott értékeket, amelyeket a „print” funkcióval kinyomtathat.



Generátor funkció számláló készítéséhez

A következő program egy példa arra, hogy a generátor függvény számsorozatot generáljon:

def én_generátorom ( n ) :
számláló = 0
míg számláló < n:
hozam számláló
számláló + = 1
számára számláló ban ben én_generátorom ( 10 ) :
nyomtatás ( számláló )

Például, ha a bemenet 10, akkor a kód fordításakor 0 és 9 közötti értékeket kapunk.

Fibonacci sorozat a generátor funkció használatával

Használjuk most a Fibonacci sorozatot, amely a programozás legalapvetőbb sorozata:

def sorozat_fibonacci ( határ ) :
én , j = 0 , 1
míg én < határ:
hozam én
én , j = j , i + j

a = sorozat_fibonacci ( 6 )

nyomtatás ( következő ( a ) )
nyomtatás ( következő ( a ) )
nyomtatás ( következő ( a ) )
nyomtatás ( következő ( a ) )
nyomtatás ( következő ( a ) )
nyomtatás ( következő ( a ) )

A kód futtatásával a következőképpen kapjuk meg a sorozatot:

Először hozzon létre egy „a” nevű objektumot, és hívja meg a „generátor” függvényt a kívánt bemenettel argumentumként.

A next() kulcsszó egy manuális iterátor. Minden alkalommal, amikor a next(a)-t használjuk, ismétlődik egy „a” érték felett. A „for” ciklust azonban használhatjuk az „a” összes értékének egyszerre történő kinyomtatására, amint az a következő példában látható:

„for” ciklus használata a next() függvény helyett:

def sorozat_fibonacci ( határ ) :
én , j = 0 , 1
míg én < határ:
hozam én
én , j = j , i + j

a = sorozat_fibonacci ( 6 )
számára érték ban ben a :
nyomtatás ( érték )

A kód futtatásának eredménye nem fog különbözni, mert ez egy alternatív módszer az előző program írására:

Mik azok a generátor kifejezések a Pythonban?

A Python generátor kifejezések egy módja annak, hogy a „generátor” függvényeket tömören, lineáris kifejezések segítségével hozza létre. Íme az egyszerű szintaxis:

( kifejezés számára változó ban ben iterálható ha feltétel )

Például hozzon létre egy generátorkifejezést a páratlan számok négyzetének kiszámításához 0-tól „n”-ig, amikor az „n” a bemeneti érték.

páratlan_négyzetek = ( x * x számára x ban ben hatótávolság ( 10 ) ha x % 2 != 0 )
számára érték ban ben odd_quares:
nyomtatás ( érték )

Az előző kód a következő eredményt adja:

Következtetés

Ez a Python generátorok létrehozásának és használatának különböző módszereiről szól. Mindent elmagyaráztunk a Python generátor kifejezésekről. Használja ezeket a kifejezéseket, ha fontolóra veszi generátorok használatát bármely projektjében, mert ezek minden programozási szempontból hatékonyabbak.