Často, keď sa zaoberáme iterátormi, musíme tiež udržiavať počet iterácií. Python uľahčuje programátorom úlohu tým, že pre túto úlohu poskytuje vstavanú funkciu enumerate(). Metóda enumerate () pridá počítadlo do iterovateľnej položky a vráti ju vo forme enumeračného objektu. Tento vymenovaný objekt možno potom použiť priamo na cykly alebo ho pomocou funkcie list() previesť na zoznam n-tic.
Syntax: enumerate(iterovateľné, začiatok=0)
Parametre:
- Iterovateľné: akýkoľvek objekt, ktorý podporuje iteráciu
- Štart: hodnota indexu, od ktorej sa má počítadlo spustiť, štandardne je 0
Návrat: Vráti iterátor s pármi indexu a prvkov z pôvodnej iterovateľnej položky
Príklad
Tu používame funkciu enumerate() so zoznamom aj reťazcom. Vytváranie enumeračných objektov pre každý z nich a zobrazovanie ich návratových typov. Tiež ukazuje, ako zmeniť počiatočný index pre enumeráciu pri použití na reťazec, výsledkom čoho sú páry index-prvok pre zoznam a reťazec .
Python3
funkcie arduina
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>)))> |
>
>
Výkon:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Použitie Enumerate Object in Loops
Enumerate() sa používa so zoznamom s názvom l1. Najprv vytlačí n-tice párov indexov a prvkov. Potom zmení počiatočný index pri ich spoločnej tlači. Nakoniec vytlačí index a prvok samostatne, každý na svojom riadku.
Python3
terminál kali linux
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)> |
globálna premenná js
>
>
Výkon:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Prístup k ďalšiemu prvku
V Pythone funkcia enumerate() slúži ako iterátor, ktorý dedí všetky súvisiace funkcie a metódy iterátora. Preto môžeme použiť funkciu next() a metódu __next__() s an vyčísliť objekt.
Na prístup k ďalšiemu prvku v objekte enumerate môžete použiť funkciu next(). Vezme objekt enumerate ako vstup a vráti ďalšiu hodnotu v iterácii.
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
q2 mesiace
>
Výkon:
Next Element: (0, 'apple')>
Ak chcete získať nasledujúce prvky, môžete znova zavolať funkciu next():
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
zásobník v ds
>
Výkon:
Next Element: (0, 'apple')>
Zakaždým, keď sa zavolá next(), vnútorný ukazovateľ objektu enumerate sa presunie na ďalší prvok a vráti zodpovedajúcu n-ticu indexu a hodnoty.