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

Use Enumerate Function Python Create Loops With Counters



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

Szintaxis és alapvető példa

Ha más programozási nyelveken, különösen a C nyelven és más C stílusú szintaxissal rendelkező nyelveket használt a for ciklushoz, előfordulhat, hogy kezdő indexet adott meg a ciklusban. Referenciaként a következőképpen néz ki a for ciklus C nyelven és más hasonló szintaxisú nyelveken:







számára (intén= 0;én< 10;én++)

{

printf ('%d n',én);

}

A ciklus utasítás inicializálja a nulla értékű változót, ellenőrzi, hogy kisebb -e, mint egy küszöb, és egy számmal növeli azt, miután kiértékelte a ciklusblokkon belüli logikát (ha a leállítási feltétel teljesül). Így használhat egy indexet, és hozzárendelheti a ciklusblokkban hivatkozott objektumokhoz. Összehasonlításképpen, így néz ki egy for ciklus ugyanazzal az eredménnyel Pythonban:



számáraénban ben hatótávolság(0, 10):

nyomtatás (én)

A Python tartományfüggvénye lehetővé teszi egy számtartomány -sorozat megadását, amelynek alapértelmezett lépése 1. A lépés értékét egy harmadik argumentum megadásával módosíthatja. A tartományfüggvény második argumentuma a leállítási állapot küszöbértékének beállítására szolgál. Mindkét kódminta a következő kimenetet eredményezi:



0

1

2

3

4

5

6

7

8

9

Ezek a ciklusok jól működnek, ha csak számsorozatot szeretne generálni, és valamilyen logikához társítani őket a ciklus utasításban. Előfordulhat azonban, hogy más beágyazott hurkot kell használnia, vagy a hozamfüggvényt bármely iterálható típuson, hogy valamilyen nyomon követhető számot rendeljen hozzájuk. A felsorolási módszer megkönnyíti az indexek hozzárendelését az iterabelekhez egy utasításban, így nincs szükség több egymásba ágyazott ciklus futtatására. Nézze meg ezt a kódmintát:





számokat= ['nulla', 'egy', 'kettő', 'három', 'négy', 'öt']

felsorolt_számok= listázott(számokat)

számáraindex,tételban benfelsorolt_számok:

nyomtatás (index,tétel)

Az első utasítás egy új változót határoz meg, amelyet számoknak neveznek, és egy iterálható (listatípust) rendel hozzá. A második állítás az enumerate függvény használatát mutatja, ahol kötelező argumentumként megad egy iterálhatót. A harmadik utasítás konvertálja az enumerated_numbers változót egy lista típusú objektummá. Alapértelmezés szerint az enumerate függvény felsorolási típusú objektumot generál, nem pedig iterable típust, ezért át kell alakítania. A fentebb 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 hozzárendel egy számot minden elemhez egy iterálható típusban, és páros értékekkel rendelkező sorokat hoz létre. Alapértelmezés szerint a számlálás nulláról indul.



Most, hogy az egyes elemekhez hozzárendelt egy számot egy iterálható típusban, könnyedén átléphet rajta anélkül, hogy beágyazott utasításokat írna:

számokat= ['nulla', 'egy', 'kettő', 'három', 'négy', 'öt']

felsorolt_számok= listázott(számokat)

számáraindex,tételban benfelsorolt_számok:

nyomtatás (index,tétel)

A fent megadott kódminta a következő kimenetet eredményezi:

0 nulla

1 egyet

2 kettő

3 három

4 négy

5 öt

A kódot rövidebbé teheti a soron belüli felsorolási függvény használatával, amint az az alábbi példában látható:

számokat= ['nulla', 'egy', 'kettő', 'három', 'négy', 'öt']

számáraindex,tételban ben listázott(számokat):

nyomtatás (index,tétel)

Az Enumerate használata más kezdőindexekkel

Az enumerate függvény egy opcionális argumentumot tartalmaz, ahol megadhatja a kezdő indexet. Alapértelmezés szerint nulla, de megváltoztathatja a start argumentum használatával:

számokat= ['egy', 'kettő', 'három', 'négy', 'öt']

számáraindex,tételban ben listázott(számokat,Rajt=1):

nyomtatás (index,tétel)

A második állításban a start = 1 argumentum a kezdőpont megváltoztatására szolgál. A fent megadott kódminta futtatása után a következő kimenetet kell kapnia:

1 egyet

2 kettő

3 három

4 négy

5 öt

Index hozzárendelése lépésekkel

A cikk első szakaszában a C nyelvű ciklus szintaxisa látható, ahol meghatározhatja a lépéseket az egyes következő számok vagy indexek között. A Python enumerate függvényében nincs ilyen érv, így nem adhat meg lépést a számlálások között. Valóban saját logikát írhat, hogy lépéseket hajtson végre a felsorolt ​​ciklusblokkon belül. Van azonban mód egyéni lépések végrehajtására minimális kód írásával. A következő példa bemutatja a lépések végrehajtását a zip és a tartomány függvények használatával:

számokat= ['nulla', 'kettő', 'négy', 'hat']

számáraindex,tételban ben postai irányítószám(hatótávolság(0, 7, 2),számokat):

nyomtatás (index,tétel)

A zip funkció lehetővé teszi, hogy párokat hozzon létre úgy, hogy két vagy több iterabelbő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ájából, majd mindkettőt párosítja. A végeredmény megegyezik az enumerate függvény megvalósításával, de az egyéni lépések a harmadik argumentumként vannak megadva a tartomány (0, 7, 2) függvényében (ebben az esetben 2). 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ási funkciója lehetővé teszi tömör kód írását azáltal, hogy számsorozatot rendel hozzá az iterálható objektum elemeihez. Ez nagyon hasznos, ha nyomon akarja követni az elemek indexét egy iterálható típuson belül. Ha egyéni lépésekkel szeretné felsorolni az iterálható típusokat, használja az utolsó példában ismertetett zip függvényt.