Ofta, när vi har att göra med iteratorer, måste vi också hålla en räkning av iterationer. Python förenklar programmerarnas uppgift genom att tillhandahålla en inbyggd funktion enumerate() för denna uppgift. Metoden enumerate () lägger till en räknare till en iterabel och returnerar den i form av ett uppräkningsobjekt. Detta uppräknade objekt kan sedan användas direkt för loopar eller konverteras till en lista med tupler med hjälp av list()-funktionen.
Syntax: enumerate(iterbar, start=0)
Parametrar:
- Iterable: alla objekt som stöder iteration
- Start: indexvärdet från vilket räknaren ska startas, som standard är det 0
Lämna tillbaka: Returnerar en iterator med index- och elementpar från den ursprungliga iterable
Exempel
Här använder vi funktionen enumerate() med både en lista och en sträng. Skapa uppräkningsobjekt för varje och visa deras returtyper. Den visar också hur man ändrar startindexet för uppräkning när det tillämpas på en sträng, vilket resulterar i index-elementpar för listan och strängen .
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>)))> |
textstorlekar i latex
>
>
Produktion:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Använda Enumerate Object i Loops
Enumerate() används med en lista som heter l1. Den skriver först ut tuplar av index- och elementpar. Sedan ändrar den startindexet samtidigt som de skrivs ut tillsammans. Slutligen skriver den ut index och element separat, var och en på sin egen rad.
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)> |
>
>
Produktion:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Åtkomst till nästa element
I Python fungerar enumerate()-funktionen som en iterator, och ärver alla associerade iteratorfunktioner och -metoder. Därför kan vi använda funktionen next() och metoden __next__() med en räkna upp objekt.
För att komma åt nästa element i ett uppräkningsobjekt kan du använda funktionen next(). Den tar det uppräknade objektet som indata och returnerar nästa värde i iterationen.
Python3
css understruken text
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Produktion:
Next Element: (0, 'apple')>
Du kan anropa next() igen för att hämta efterföljande element:
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
ingen ingångssignal
>
Produktion:
Next Element: (0, 'apple')>
Varje gång next() anropas, flyttar den interna pekaren för det uppräknade objektet till nästa element och returnerar motsvarande tuppel av index och värde.