Loendurite abil silmuste loomiseks kasutage Pythonis loendamisfunktsiooni

Use Enumerate Function Python Create Loops With Counters



See artikkel selgitab Pythoni standardmooduliteekis saadaoleva loendamisfunktsiooni kasutamist. Loendamisfunktsioon võimaldab teil määrata indeksi või loenduse mis tahes itereeritava objekti elementidele. Seejärel saate neile täiendavat loogikat rakendada, kuna teil on juurdepääs nii väärtustele kui ka sellele loendatud arvule.

Süntaks ja põhinäide

Kui olete tsüklit a kasutanud teistes programmeerimiskeeltes, eriti C -keeles ja teistes keeltes, millel on C -stiilis süntaks, olete võib -olla määranud tsüklis lähteindeksi. Siin on viide, kuidas näeb välja for for C ja muudes sarnase süntaksiga keeltes:







eest (inti= 0;i< 10;i++)

{

printf ('%d n',i);

}

Tsükli avaldis initsialiseerib muutuja, mille väärtus on null, kontrollib, kas see on väiksem kui lävi, ja suurendab seda ühe arvu võrra pärast loogikabloki loogika hindamist (kui seiskumistingimus on täidetud). Nii saate kasutada indeksit ja määrata selle kõikidele silmusplokis viidatud objektidele. Võrdluseks, siin näeb Pythonis välja sama tulemusega for -tsükkel:



eestisisse vahemik(0, 10):

printida (i)

Vahemiku funktsioon Pythonis võimaldab teil määrata numbrivahemiku jada, mille vaikesamm on 1. Sammu väärtust saate muuta, esitades kolmanda argumendi. Vahemiku funktsiooni teist argumenti kasutatakse seiskamistingimuste läve seadmiseks. Mõlemad koodinäidised annavad järgmise väljundi:



0

1

2

3

4

5

6

7

8

9

Need ahelad töötavad hästi, kui soovite lihtsalt genereerida mõne numbrijada ja siduda need mingi tsükli avalduse loogikaga. Siiski peate võib -olla kasutama mõnda muud pesastatud tsüklit või kasutama mis tahes itereeritava tüübi saagisfunktsiooni, et määrata neile mingi jälgitav arv. Loendamismeetodi abil on lihtne ühes lauses indekseid iterabile määrata, välistades sellega vajaduse mitme pesastatud ahela käitamiseks. Vaadake seda koodinäidist:





numbrid= ['null', 'üks', 'kaks', 'kolm', 'neli', 'viis']

loendatud_numbrid= loetletud(numbrid)

eestindeks,kirjesisseloendatud_numbrid:

printida (indeks,kirje)

Esimene lause määratleb uue muutuja nimega numbrid ja määrab sellele korduva (loendi tüübi). Teine väide näitab ülesloendamisfunktsiooni kasutamist, kui esitate sellele kohustusliku argumendina kordatava. Kolmas lause teisendab muutuja loendatud_numbrid loenditüübiks. Vaikimisi genereerib loendamisfunktsioon loenditüüpi objekti, mitte iteeritavat tüüpi, seega peate selle teisendama. Pärast ülalmainitud koodinäidise käivitamist peaksite saama järgmise väljundi:

[(0, „null”), (1, „üks”), (2, „kaks”), (3, „kolm”), (4, „neli”), (5, „viis”)]

Loendamisfunktsioon määrab igale itereeritava tüübi elemendile loenduse ja loob paarisväärtustega kaardid. Vaikimisi algab loendamine nullist.



Nüüd, kui olete igale elemendile korduva tüübi numbri määranud, saate selle hõlpsalt ümber lükata ilma pesastatud avaldusi kirjutamata:

numbrid= ['null', 'üks', 'kaks', 'kolm', 'neli', 'viis']

loendatud_numbrid= loetletud(numbrid)

eestindeks,kirjesisseloendatud_numbrid:

printida (indeks,kirje)

Ülaltoodud koodinäidis annab järgmise väljundi:

0 null

1 üks

2 kaks

3 kolm

4 neli

5 viis

Saate koodi lühendada, kasutades loetelfunktsiooni inline, nagu on näidatud allolevas näidises:

numbrid= ['null', 'üks', 'kaks', 'kolm', 'neli', 'viis']

eestindeks,kirjesisse loetletud(numbrid):

printida (indeks,kirje)

Loendamise kasutamine erineva lähteindeksiga

Loendamisfunktsioon kasutab valikulist argumenti, kus saate määrata lähteindeksi. Vaikimisi on see null, kuid saate seda muuta, kasutades argumenti start:

numbrid= ['üks', 'kaks', 'kolm', 'neli', 'viis']

eestindeks,kirjesisse loetletud(numbrid,alustada=1):

printida (indeks,kirje)

Teises väites kasutatakse lähtepunkti muutmiseks argumenti start = 1. Pärast ülaltoodud koodinäidise käivitamist peaksite saama järgmise väljundi:

1 üks

2 kaks

3 kolm

4 neli

5 viis

Indeksi määramine sammudega

Selle artikli esimeses jaotises on näidatud C -keele silmus süntaks, kus saate määrata sammud iga järgneva loenduse või indeksi vahel. Pythoni loendamisfunktsioonil pole ühtegi sellist argumenti saadaval, nii et te ei saa loenduste vahel sammu määrata. Tõepoolest saate kirjutada oma loogika, et rakendada samme silmusploki jaoks loetletud sammude sees. Siiski on võimalus kohandatud toiminguid rakendada, kirjutades minimaalse koodi. Järgmine näide näitab sammude rakendamist zip- ja vahemikfunktsioonide abil:

numbrid= ['null', 'kaks', 'neli', 'kuus']

eestindeks,kirjesisse tõmblukk(vahemik(0, 7, 2),numbrid):

printida (indeks,kirje)

Zip -funktsioon võimaldab teil luua paare, korjates sama indeksiga elemente kahest või enamast iteratsioonist. Seega võtab zip -funktsioon siin elemendi vahemikust (0, 7, 2) tagastatavast iteeritavast elemendist ja teise elemendi numbrite loendist ning paaristab need mõlemad kokku. Lõpptulemuseks on loendamisfunktsiooniga identne teostus, kuid kohandatud sammud on määratletud kolmanda argumendina vahemikus (0, 7, 2) funktsioonis (antud juhul 2). Pärast ülaltoodud koodinäidise käivitamist peaksite saama järgmise väljundi:

0 null

2 kaks

4 neli

6 kuus

Järeldus

Loendamisfunktsioon Pythonis võimaldab teil kirjutada lühikese koodi, määrates korduva objekti elementidele numbrijada. See on tõesti kasulik, kui soovite jälgida korduva tüübi üksuste indeksit. Kui soovite kohandatud sammudega loetleda korduvaid tüüpe, kasutage viimases näites kirjeldatud zip -funktsiooni.