Dažnai, kai dirbame su iteratoriais, taip pat turime nuolat skaičiuoti iteracijas. „Python“ palengvina programuotojo užduotį, pateikdama įmontuotą funkciją enumerate() šiai užduočiai. Išvardyti () metodas prideda skaitiklį prie kartotinės ir grąžina jį surašymo objekto forma. Tada šis išvardintas objektas gali būti naudojamas tiesiogiai kilpoms arba konvertuojamas į eilučių sąrašą naudojant list() funkciją.
Sintaksė: išvardinti (kartojama, pradžia = 0)
Parametrai:
- Pakartojama: bet koks objektas, palaikantis iteraciją
- Pradžia: indekso reikšmė, nuo kurios turi būti paleistas skaitiklis, pagal numatytuosius nustatymus ji yra 0
Grąžinti: Grąžina iteratorių su indekso ir elementų poromis iš pradinio iteravimo
Pavyzdys
Čia mes naudojame funkciją enumerate () su sąrašu ir eilute. Kiekvieno objekto surašymas ir jų grąžinimo tipų rodymas. Taip pat parodoma, kaip pakeisti pradinį surašymo indeksą, kai jis taikomas eilutei, todėl sąrašo ir eilutės indekso elementų poros .
Python3
perbrauktas žymėjimas
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>)))> |
>
>
Išvestis:
Return type: [(0, 'eat'), (1, 'sleep'), (2, 'repeat')] [(2, 'g'), (3, 'e'), (4, 'e'), (5, 'k')]>
Objekto išvardijimo naudojimas kilpose
Enumerate() naudojamas su sąrašu pavadinimu l1. Pirmiausia spausdinamos indekso ir elementų porų eilutės. Tada jis pakeičia pradinį indeksą spausdindamas juos kartu. Galiausiai jis spausdina rodyklę ir elementą atskirai, kiekvienas savo eilutėje.
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)> |
>
>
Išvestis:
(0, 'eat') (1, 'sleep') (2, 'repeat') 100 eat 101 sleep 102 repeat 0 eat 1 sleep 2 repeat>
Prieiga prie kito elemento
Python sistemoje funkcija enumerate() tarnauja kaip iteratorius, paveldėdamas visas susijusias iteratoriaus funkcijas ir metodus. Todėl galime naudoti funkciją next() ir __next__() metodą su an išvardinti objektas.
Norėdami pasiekti kitą surašymo objekto elementą, galite naudoti funkciją next(). Jis paima surašymo objektą kaip įvestį ir grąžina kitą iteracijos reikšmę.
Python3
kaip patikrinti monitoriaus ekrano dydį
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Išvestis:
Next Element: (0, 'apple')>
Galite dar kartą iškviesti next(), kad gautumėte tolesnius elementus:
Python3
mano gyvas kriketas
fruits>=> [>'apple'>,>'banana'>,>'cherry'>]> enum_fruits>=> enumerate>(fruits)> next_element>=> next>(enum_fruits)> print>(f>'Next Element: {next_element}'>)> |
>
>
Išvestis:
Next Element: (0, 'apple')>
Kiekvieną kartą, kai iškviečiamas next(), vidinis išvardijamo objekto rodyklė pereina prie kito elemento, grąžindamas atitinkamą indekso ir reikšmės eilutę.