Bieži vien, strādājot ar iteratoriem, mums ir arī jāskaita iterācijas. Python atvieglo programmētāju uzdevumu, šim uzdevumam nodrošinot iebūvētu funkciju enumerate (). Uzskaitīšanas () metode pievieno iterējamam skaitītāju un atgriež to uzskaitoša objekta veidā. Pēc tam šo uzskaitīto objektu var izmantot tieši cilpām vai pārveidot par korešu sarakstu, izmantojot funkciju list().
Sintakse: uzskaitīt(atkārtojams, sākums=0)
Parametri:
isempty java
- Atkārtojams: jebkurš objekts, kas atbalsta iterāciju
- Sākt: indeksa vērtība, no kuras jāsāk skaitītājs, pēc noklusējuma tā ir 0
Atgriezties: Atgriež iteratoru ar indeksu un elementu pāriem no sākotnējā iterējamā
Piemērs
Šeit mēs izmantojam funkciju enumerate () gan ar sarakstu, gan ar virkni. Uzskaitīšanas objektu izveidošana katram un to atgriešanas veidu parādīšana. Tas arī parāda, kā mainīt uzskaitīšanas sākuma indeksu, kad tas tiek lietots virknei, kā rezultātā tiek izveidoti indeksa elementu pāri sarakstam un virknei. .
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>)))> |
>
>
Izvade:
šķēle java
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Objekta uzskaitīšanas izmantošana cilpās
Enumerate() tiek izmantots ar sarakstu ar nosaukumu l1. Vispirms tas izdrukā indeksu un elementu pāru kopas. Pēc tam tas maina sākuma indeksu, vienlaikus drukājot tos. Visbeidzot, tas izdrukā indeksu un elementu atsevišķi, katrs savā rindā.
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)> |
>
>
Izvade:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Piekļuve nākamajam elementam
Programmā Python funkcija enumerate() kalpo kā iterators, pārmantojot visas saistītās iteratora funkcijas un metodes. Tāpēc mēs varam izmantot funkciju next() un __next__() metodi ar an uzskaitīt objektu.
Lai piekļūtu nākamajam elementam uzskaites objektā, varat izmantot funkciju next(). Tas izmanto uzskaites objektu kā ievadi un atgriež nākamo iterācijas vērtību.
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
java lietošanas datums
>
>
Izvade:
Next Element: (0, 'apple')>
Varat vēlreiz izsaukt next(), lai izgūtu nākamos elementus:
Python3
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
vesels skaitlis līdz virknei java
>
Izvade:
Next Element: (0, 'apple')>
Katru reizi, kad tiek izsaukts next(), uzskaitāmā objekta iekšējais rādītājs pāriet uz nākamo elementu, atgriežot atbilstošo indeksa un vērtības korteci.