Enumerate() v Pythone
Č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
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
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)> |
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}'> )> |
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}'> )> |
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.