A Python számos iterálható objektumot támogat: a listák, sorok és karakterláncok csak néhány. A Python for ciklusa elég rugalmas ahhoz, hogy ezeket az objektumokat könnyedén kezelje. Különösen megkíméli Önt attól, hogy saját maga kezelje az egyes bejegyzések numerikus indexét.

Néha azonban érdemes indexel dolgozni, például egy gyűjtemény elemeit megszámolni vagy szűrni. Ismerje meg, hogyan használhatja a Python enumerate függvényt a sorozaton keresztüli iterációhoz, miközben nyomon követheti az indexet és az elemet is.

Iteráció enumerate() nélkül

Tekintsük a következő Python-listát.

my_fruits = ["alma", "körte", "banán"]

Tegyük fel, hogy nyomon szeretné követni a lista egyes elemeinek számát. Te tudnál használj egy for ciklust val,-vel hatótávolság() így működik.

szám = 0

számára gyümölcs ban ben tartomány (len (my_fruits)):
nyomtatás (számlálás, my_fruits[count])
szám += 1

Míg ez működik, van néhány hiányossága:

  • Nyomon kell követnie a számlálást a hurkon kívül.
  • Növelnie kell a számot minden iterációban.
  • instagram viewer
  • Ki kell számolni a hurok hosszát.
  • tartomány (len()) csak megszámlálható, indexelhető objektumokkal működik.

Létezik egy jobb megoldás: az enumerate() függvény.

Hogyan működik az enumerate() a Pythonban

A Python felsorol() függvény adatgyűjtést végez, és egy enumerate objektumot ad vissza. Az enumerate objektum egy számlálót tartalmaz kulcsként az objektumban lévő minden egyes elemhez. Az felsorol() funkció ezt úgy teszi meg, hogy minden elemhez hozzárendel egy számot. Ez a szám megfelel azoknak az iterációknak, amelyeket a függvény végrehajtott az érték eléréséhez.

Ez a számláló megkönnyíti a gyűjtemény elemeinek elérését, vagy akár a gyűjtemény mutációját, ahol lehetséges.

Val vel felsorol(), nem kell nyomon követnie a hurok hosszát vagy az iterációk számát. Azt is elkerülheti, hogy az értékhez közvetlenül hozzáférjen az index operátorral, pl gyümölcsök [szám]. A felsorolás funkció automatikusan kezeli ezeket a funkciókat.

A Python szintaxisa enumerate()

Az alábbiakban az enumerate() függvény általános szintaxisa látható.

felsorol (iterálható, start=0)

Az enumerate() két argumentumot vesz fel:

  1. iterálható: olyan adatgyűjtemény vagy sorozat, amelyen a Python képes ismételni. Például. lista vagy tuple.
  2. start: az az index, amelytől az enumerate függvénynek el kell kezdenie a számolást.

Hogyan valósul meg az enumerate()?

Hogy megértsük, hogyan felsorol() működik, nézzük meg, hogyan valósítják meg valójában.

deffelsorolni(szekvencia, start=0):
n = start

számára elem ban ben sorrend:
hozam n, elem
n += 1

Ez a funkció, amelyet a Python felsorolja a dokumentációt, egy sorozatot és egy kezdő argumentumot vesz fel, amely alapértelmezés szerint 0.

A függvény ezután inicializálja az n változót a kezdőváltozóvá. Ez nyomon követi az iterációk számát.

A sorozat egyes elemeihez tartozó for ciklusban

  • hozam szünetelteti a ciklus végrehajtását.
  • Az aktuális számot (n) és az értéket (elem) is visszaadja.
  • Amikor a ciklus folytatódik, n-el növeli.

A visszatérési érték kulcs-érték párok objektuma.

Ha felhívnád a felsorol() függvényt, és adja át neki a gyümölcslistát, ez lesz a kimeneti érték.

my_fruits = ["alma", "körte", "banán"]
enumerate_object = felsorol (saját_gyümölcseim)
nyomtatás (lista (felsorol_objektum))

# kimenet - [(0, 'alma'), (1, 'körte'), (2, 'banán')]

Számoljon más kezdő indexszel

A fenti példában nem adtuk meg a kezdő indexet. Az alábbi példa bemutatja, hogyan állíthatja be a kezdő indexet egy tetszőleges számra.

10-kor kezdéshez tegye a következőket.

enumerate_object = felsorol (my_fruits, 10)
nyomtatás (lista (felsorol_objektum))

# kimenet - [(10, 'alma'), (11, 'körte'), (12, 'banán')]

Python enumerate() példák

Íme néhány példa, amely bemutatja, hogyan használhatja felsorol() Pythonban.

Soroljon fel egy Python karakterláncot

Ebben a példában az enumerate funkciót fogja használni az 5. indexben lévő betű lekéréséhez:

my_string = "makeuseof"

számára szám, érték ban ben felsorol (my_string):
ha szám == 5:
nyomtatás (érték)

# kimenet - s

Soroljon fel egy Python Tuple-t

Használhatod is felsorol() iterálni a felett Python sor. Ebben a példában a program az első iterációban fejlécet nyomtat, mielőtt megjeleníti az elemeket.

my_fruits_tuple = ("alma", "körte", "banán")

számára index, érték ban ben felsorol (my_fruits_tuple):
ha (index == 0):
print("Gyümölcsök:")

nyomtatás (érték)

/*
Gyümölcsök:
almák
körte
banán
*/

Soroljon fel egy Python-listát

Az alábbi példában az enumerate funkciót használja a lista 10 feletti összes számának 2-vel való csökkentésére.

my_number_list = [10, 17, 15, 6]

számára index, érték ban ben felsorol (my_number_list):
ha (érték > 10):
my_number_list[index] -= 2

nyomtatás (saját_számlistám)

# kimenet - [10, 15, 13, 6]

Használja az enumerate-t az iterables számlálásához

A Python tartalmazza felsorol() beépített funkcióként. Használhatja egy iterálható gyűjtemény elemeinek iterálására és számlálására, például lista, sor vagy karakterlánc. Segítségével nyomon követheti az egyes elemek valódi indexét, de megadhatja saját kezdőindexét is. Használja alternatívaként a hatótávolság() funkciót, ha olyan objektumokkal dolgozik, amelyek nem megszámlálható és indexelhető objektumok.