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:
- Tömör: A generátorokat egyszerűen, tömören definiálhatja, ami javítja a kód olvashatóságát.
- Hatékony memória: Egyszerre egyetlen értéket generálnak, ami kevesebb memóriát fogyaszt és javítja a hatékonyságot.
- 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.
- 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.