Adesea, atunci când avem de-a face cu iteratoare, trebuie să păstrăm și un număr de iterații. Python ușurează sarcina programatorilor oferind o funcție încorporată enumerate() pentru această sarcină. Metoda enumerate () adaugă un numărător la un iterabil și îl returnează sub forma unui obiect enumerator. Acest obiect enumerat poate fi apoi folosit direct pentru bucle sau convertit într-o listă de tupluri folosind funcția list().
Sintaxă: enumerate(iterabil, start=0)
Parametri:
- Iterabil: orice obiect care acceptă iterația
- Start: valoarea indexului de la care trebuie pornit contorul, implicit este 0
Întoarcere: Returnează un iterator cu perechi de index și elemente din iterabilul original
Exemplu
Aici, folosim funcția enumerate() atât cu o listă, cât și cu un șir. Crearea de obiecte enumerate pentru fiecare și afișarea tipurilor de returnare ale acestora. De asemenea, arată cum să schimbați indexul de pornire pentru enumerare atunci când este aplicat unui șir, rezultând perechi index-element pentru listă și șir .
Python3
str la int
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>)))> |
>
>
Ieșire:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Utilizarea Enumerate Object în Loops
Enumerate() este folosit cu o listă numită l1. Mai întâi imprimă tupluri de perechi index și elemente. Apoi schimbă indexul de pornire în timp ce le imprimă împreună. În cele din urmă, tipărește indexul și elementul separat, fiecare pe linia sa.
Python3
verilog întotdeauna
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)> |
>
>
Ieșire:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Accesarea următorului element
În Python, funcția enumerate() servește ca un iterator, moștenind toate funcțiile și metodele asociate iteratorului. Prin urmare, putem folosi funcția next() și metoda __next__() cu un enumera obiect.
Pentru a accesa următorul element dintr-un obiect enumerare, puteți utiliza funcția next(). Acesta ia obiectul enumerate ca intrare și returnează următoarea valoare din iterație.
ipconfig pe Ubuntu
Python3
cea mai buna masina din lume
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Ieșire:
Next Element: (0, 'apple')>
Puteți apela din nou next() pentru a prelua elementele ulterioare:
Python3
afișați aplicațiile ascunse
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Ieșire:
Next Element: (0, 'apple')>
De fiecare dată când next() este apelat, pointerul intern al obiectului enumerate se mută la următorul element, returnând tuplu corespunzător de index și valoare.