Enumerate() v Pythonu

Ko imamo opravka z iteratorji, moramo pogosto voditi tudi štetje iteracij. Python programerjem olajša nalogo z zagotavljanjem vgrajene funkcije enumerate() za to nalogo. Metoda enumerate () doda števec iterable in ga vrne v obliki enumeracijskega objekta. Ta oštevilčen objekt lahko nato uporabite neposredno za zanke ali ga pretvorite v seznam tulp s funkcijo list().

Sintaksa: enumerate(iterable, start=0)

Parametri:

  • Ponovljivo: kateri koli objekt, ki podpira ponovitev
  • Začetek: vrednost indeksa, od katere naj se začne števec, privzeto je 0

Vrnitev: Vrne iterator s pari indeksa in elementov iz izvirne iterable

Primer

Tu uporabljamo funkcijo enumerate() tako s seznamom kot z nizom. Ustvarjanje oštevilčenih objektov za vsakega in prikaz njihovih povratnih vrst. Pokaže tudi, kako spremeniti začetni indeks za oštevilčenje, ko se uporabi za niz, kar povzroči pare indeks-element za seznam in niz .

Python3




l1> => [> 'eat'> ,> 'sleep'> ,> 'repeat'> ]> s1> => 'geek'> # creating enumerate objects> obj1> => enumerate> (l1)> obj2> => enumerate> (s1)> print> (> 'Return type:'> ,> type> (obj1))> print> (> list> (> enumerate> (l1)))> # changing start index to 2 from 0> print> (> list> (> enumerate> (s1,> 2> )))>

Izhod:

Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')] 

Uporaba Enumerate Object v zankah

Enumerate() se uporablja s seznamom, imenovanim l1. Najprej natisne tuple parov indeksov in elementov. Nato med tiskanjem skupaj spremeni začetni indeks. Na koncu natisne indeks in element ločeno, vsakega v svojo vrstico.

Python3




l1> => [> 'eat'> ,> 'sleep'> ,> 'repeat'> ]> # printing the tuples in object directly> for> ele> in> enumerate> (l1):> > print> (ele)> # changing index and printing separately> for> count, ele> in> enumerate> (l1,> 100> ):> > print> (count, ele)> # getting desired output from tuple> for> count, ele> in> enumerate> (l1):> > print> (count)> > print> (ele)>

Izhod:

(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat 

Dostop do naslednjega elementa

V Pythonu funkcija enumerate() služi kot iterator, ki podeduje vse povezane funkcije iteratorja in metode. Zato lahko uporabimo funkcijo next() in metodo __next__() z an našteti predmet.

Za dostop do naslednjega elementa v objektu enumerate lahko uporabite funkcijo next(). Kot vhod vzame objekt enumerate in vrne naslednjo vrednost v ponovitvi.

Python3




fruits> => [> 'apple'> ,> 'banana'> ,> 'cherry'> ]> enum_fruits> => enumerate> (fruits)> next_element> => next> (enum_fruits)> print> (f> 'Next Element: {next_element}'> )>

Izhod:

Next Element: (0, 'apple') 

Ponovno lahko pokličete next(), da pridobite naslednje elemente:

Python3




fruits> => [> 'apple'> ,> 'banana'> ,> 'cherry'> ]> enum_fruits> => enumerate> (fruits)> next_element> => next> (enum_fruits)> print> (f> 'Next Element: {next_element}'> )>

Izhod:

Next Element: (0, 'apple') 

Vsakič, ko se pokliče next(), se notranji kazalec predmeta enumerate premakne na naslednji element in vrne ustrezno torko indeksa in vrednosti.