Piton

A számlálókkal hurkok létrehozásához használja a Python Enumerate függvényét

A számlálókkal hurkok létrehozásához használja a Python Enumerate függvényét

Ez a cikk elmagyarázza a Python szabványos modulkönyvtárában elérhető „felsorolás” funkció használatát. Az Enumerate függvény lehetővé teszi „index” vagy „count” hozzárendelését bármely iterálható objektum eleméhez. Ezután további logikát valósíthat meg rajtuk, mivel hozzáférhet mind az értékekhez, mind a hozzájuk rendelt számhoz.

Szintaxis és alapvető példa

Ha más programozási nyelvekben használt "for" ciklust, különösen a "C" nyelvet és más "C" stílusú szintaxissal rendelkező nyelveket, akkor lehet, hogy megadta a kezdő indexet a ciklusban. Hivatkozásként a következõképpen néz ki a „for” ciklus a „C” és más hasonló szintaxisú nyelveken:

mert (int i = 0; i < 10; i++)

printf ("% d \ n", i);

A ciklus utasítás inicializálja a nulla értékű változót, ellenőrzi, hogy ez kisebb-e egy küszöbértéknél, és egy számmal növeli, miután kiértékelte a logikai blokk belsejében lévő logikát (ha a stop feltétel teljesül). Így indexet használhat, és hozzárendelheti a hurokblokkban hivatkozott objektumokhoz. Összehasonlításképpen, itt néz ki egy for for loop azonos eredménnyel a Pythonban:

i-re a (0, 10) tartományban:
nyomtatás (i)

A „tartomány” függvény a Pythonban lehetővé teszi egy olyan számtartomány-sorozat megadását, amelynek alapértelmezett lépése 1. A lépésértéket megváltoztathatja egy harmadik argumentum megadásával. A „tartomány” függvény második argumentuma a leállítási feltétel küszöbének beállítására szolgál. Mindkét kódminta a következő kimenetet produkálja:

0
1
2
3
4
5
6
7
8
9

Ezek a ciklusok jól működnek, ha csak elő akar állítani egy számszekvenciát, és összekapcsolja őket a ciklus utasítás belsejében lévő logikával. Előfordulhat azonban, hogy egy másik beágyazott ciklust kell használnia, vagy bármilyen iterálható típusnál a „hozam” funkciót kell használnia valamilyen nyomon követhető számlálóhoz. Az „enumerate” módszer megkönnyíti az indexek hozzárendelését az iterable-hez egy utasításban, ezáltal kiküszöböli több beágyazott hurok futtatásának szükségességét. Nézze meg ezt a kódmintát:

számok [[nulla "," egy "," kettő "," három "," négy "," öt "]
enumerated_numbers = felsorol (számok)
index esetén az elem a felsorolt ​​számokban:
nyomtatás (index, cikk)

Az első utasítás meghatároz egy új „számok” nevű változót, és iterálást (listatípust) rendel hozzá. A második utasítás az „enumerate” függvény használatát mutatja, ahol kötelező iterációként iterálást ad meg hozzá. A harmadik utasítás az „enumerated_numbers” változót konvertálja listatípus objektummá. Alapértelmezés szerint az „enumerate” függvény egy „enumerate” típusú objektumot generál, nem pedig iterálható típust, ezért azt konvertálnia kell. A fent említett kódminta futtatása után a következő kimenetet kell kapnia:

[(0, 'nulla'), (1, 'egy'), (2, 'kettő'), (3, 'három'), (4, 'négy'), (5, 'öt')]

Az „enumerate” függvény számolást rendel minden iterálható típusú elemhez, és párosított értékeket hoz létre. Alapértelmezés szerint a számlálás nullától kezdődik.

Most, hogy minden iterálható elemhez rendelt egy számot, könnyedén áthidalhatja azt anélkül, hogy beágyazott utasításokat írna:

számok [[nulla "," egy "," kettő "," három "," négy "," öt "]
enumerated_numbers = felsorol (számok)
index esetén az elem a felsorolt ​​számokban:
nyomtatás (index, cikk)

A fent megadott kódminta a következő kimenetet hozza létre:

0 nulla
1 egy
2 kettő
3 három
4 négy
5 öt

A kódot rövidebbé teheti a soron belüli „felsorolás” funkció használatával, amint az az alábbi mintában látható:

számok [[nulla "," egy "," kettő "," három "," négy "," öt "]
index, tétel felsorolása (számok):
nyomtatás (index, cikk)

Számlálás használata egy másik kezdő indexel

Az „enumerate” függvény egy opcionális argumentumot tartalmaz, ahol megadhat egy kezdő indexet. Alapértelmezés szerint nulla, de a „start” argumentummal módosíthatja:

számok [[egy "," kettő "," három "," négy "," öt "]
index, tétel felsorolása (számok, kezdet = 1):
nyomtatás (index, cikk)

A második utasításban a „start = 1” argumentumot használjuk a kezdőpont megváltoztatására. A fent megadott kódminta futtatása után a következő kimenetet kell kapnia:

1 egy
2 kettő
3 három
4 négy
5 öt

Index hozzárendelése lépésekkel

A cikk első szakaszában a „for” ciklus szintaxisa jelenik meg a „C” nyelven, ahol meghatározhatja az egyes következő számlálások vagy indexek közötti lépéseket. A Python „felsorolás” függvényében nem áll rendelkezésre ilyen argumentum, így nem adhat meg egy lépést a számlálások között. Valóban megírhatja saját logikáját a lépések végrehajtásához a felsorolt ​​„for” hurokblokkon belül. Van azonban mód egyéni lépések végrehajtására minimális kód beírásával. Az alábbi példa a lépések végrehajtását mutatja be a „zip” és a „range” függvényekkel:

számok [[nulla "," kettő "," négy "," hat "]
indexhez, cikk zip-ben (tartomány (0, 7, 2), számok):
nyomtatás (index, cikk)

A „zip” funkció lehetővé teszi párok létrehozását úgy, hogy két vagy több ismétlődő elemből azonos indexű elemeket vesz fel. Tehát a „zip” függvény itt felvesz egy elemet a „tartomány (0, 7, 2)” függvényből visszaadott iterálhatóból és egy másik elemet a „számok” listából, majd párosítja őket kettőbe. A végeredmény megegyezik az „enumerate” függvény megvalósításával, de a „range (0, 7, 2)” (ebben az esetben 2) függvény harmadik argumentumaként megadott egyéni lépésekkel. A fent megadott kódminta futtatása után a következő kimenetet kell kapnia:

0 nulla
2 kettő
4 négy
6 hat

Következtetés

A Python „felsorolás” funkciója lehetővé teszi, hogy tömör kódot írjon egy számozatsor hozzárendelésével egy iterálható objektum elemeihez. Ez nagyon hasznos, ha nyomon akarja követni az iterálható típuson belüli elemek indexét. Ha egyedi lépésekkel szeretné felsorolni az iterálható típusokat, használja az utolsó példában ismertetett „zip” funkciót.

Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...
Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...
Az FPS növelése Linux alatt?
Az FPS jelentése Képkocka másodpercenként. Az FPS feladata a videolejátszások vagy játékteljesítmények képkockasebességének mérése. Egyszerű szavakkal...