Izmantojiet skaitīšanas funkciju programmā Python, lai izveidotu cilpas ar skaitītājiem

Use Enumerate Function Python Create Loops With Counters



Šis raksts izskaidros Python standarta moduļu bibliotēkā pieejamās uzskaitīšanas funkcijas izmantošanu. Funkcija Enumerate ļauj jums piešķirt indeksu vai skaitu elementiem jebkurā iterējamā objektā. Pēc tam jūs varat ieviest tajos papildu loģiku, jo jums būs piekļuve gan vērtībām, gan tām piesaistītajam skaitlim.

Sintakse un pamata piemērs

Ja esat izmantojis ciklu citās programmēšanas valodās, īpaši C valodā un citās valodās, kurām ir C stila sintakse, iespējams, cilnē esat norādījis sākuma indeksu. Lai iegūtu atsauci, šeit izskatās for for cilne C un citās valodās ar līdzīgu sintaksi:







priekš (inti= 0;i< 10;i++)

{

printf ('%d n',i);

}

Cilpas paziņojums inicializē mainīgo, kura vērtība ir nulle, pārbauda, ​​vai tas ir mazāks par slieksni, un palielina to par vienu skaitli pēc loģikas novērtēšanas cilpas blokā (ja ir izpildīts apturēšanas nosacījums). Tādā veidā jūs varat izmantot indeksu un piešķirt to visiem objektiem, uz kuriem ir atsauce jūsu cilpas blokā. Salīdzinājumam, šeit izskatās for for ar tādu pašu rezultātu Python:



priekšiiekšā diapazons(0, 10):

drukāt (i)

Python diapazona funkcija ļauj norādīt skaitļu diapazona secību, kuras noklusējuma solis ir 1. Jūs varat mainīt soļa vērtību, iesniedzot trešo argumentu. Otrs arguments diapazona funkcijā tiek izmantots, lai iestatītu apstāšanās nosacījuma slieksni. Abi koda paraugi rada šādu izvadi:



0

1

2

3

4

5

6

7

8

9

Šīs cilpas darbojas labi, ja vēlaties tikai ģenerēt kādu skaitļu secību un saistīt tās ar kādu loģiku cilpas paziņojumā. Tomēr, iespējams, jums būs jāizmanto cita ligzdota cilpa vai jāizmanto ienesīguma funkcija jebkuram atkārtojamam tipam, lai piešķirtu tiem sava veida izsekojamo skaitu. Uzskaitīšanas metode ļauj viegli piešķirt indeksus atkārtojamiem vienumiem vienā paziņojumā, tādējādi novēršot nepieciešamību palaist vairākas ligzdotas cilpas. Apskatiet šo koda paraugu:





numurus= ['nulle', 'viens', 'divi', 'trīs', 'četri', 'pieci']

uzskaitīti_numuri= uzskaitīti(numurus)

priekšrādītājs,lietaiekšāuzskaitīti_numuri:

drukāt (rādītājs,lieta)

Pirmais paziņojums definē jaunu mainīgo ar nosaukumu numuri un piešķir tam atkārtojamu (saraksta veidu). Otrais apgalvojums parāda uzskaitīšanas funkcijas izmantošanu, ja tai kā obligātu argumentu norādāt atkārtojamu. Trešais paziņojums pārveido mainīgo enumerated_numbers par saraksta tipa objektu. Pēc noklusējuma uzskaitīšanas funkcija ģenerē uzskaitījuma tipa objektu, nevis atkārtojamu tipu, tāpēc jums tas ir jāpārvērš. Pēc iepriekš minētā koda parauga palaišanas jums vajadzētu iegūt šādu izvadi:

[(0, “nulle”), (1, “viens”), (2, “divi”), (3, “trīs”), (4, “četri”), (5, “pieci”)]

Funkcija uzskaitīt piešķir skaitli katram atkārtota tipa elementam un izveido kartītes ar pārī savienotām vērtībām. Pēc noklusējuma skaitīšana sākas no nulles.



Tagad, kad esat piešķīris numuru katram atkārtota tipa elementam, varat to viegli pārvietot, nerakstot ligzdotus paziņojumus:

numurus= ['nulle', 'viens', 'divi', 'trīs', 'četri', 'pieci']

uzskaitīti_numuri= uzskaitīti(numurus)

priekšrādītājs,lietaiekšāuzskaitīti_numuri:

drukāt (rādītājs,lieta)

Iepriekš norādītais koda paraugs radīs šādu izvadi:

0 nulle

1 viens

2 divi

3 trīs

4 četri

5 pieci

Jūs varat saīsināt kodu, izmantojot iekļauto uzskaitīšanas funkciju, kā parādīts zemāk esošajā paraugā:

numurus= ['nulle', 'viens', 'divi', 'trīs', 'četri', 'pieci']

priekšrādītājs,lietaiekšā uzskaitīti(numurus):

drukāt (rādītājs,lieta)

Skaitīšana ar citu sākuma indeksu

Uzskaitīšanas funkcijai ir izvēles arguments, kurā varat norādīt sākuma indeksu. Pēc noklusējuma tas ir nulle, bet to var mainīt, izmantojot sākuma argumentu:

numurus= ['viens', 'divi', 'trīs', 'četri', 'pieci']

priekšrādītājs,lietaiekšā uzskaitīti(numurus,sākt=1):

drukāt (rādītājs,lieta)

Otrajā paziņojumā sākuma = 1 arguments tiek izmantots, lai mainītu sākuma punktu. Pēc iepriekš norādītā koda parauga palaišanas jums vajadzētu iegūt šādu izvadi:

1 viens

2 divi

3 trīs

4 četri

5 pieci

Indeksa piešķiršana ar soļiem

Šī raksta pirmajā sadaļā ir parādīta cilpas sintakse C valodā, kur varat definēt soļus starp katru nākamo skaitīšanu vai indeksu. Python uzskaitīšanas funkcijai nav pieejams neviens šāds arguments, tāpēc jūs nevarat norādīt soli starp skaitīšanu. Jūs patiešām varat uzrakstīt savu loģiku, lai īstenotu darbības cilpas bloka uzskaitītajā. Tomēr ir veids, kā ieviest pielāgotas darbības, rakstot minimālu kodu. Šis piemērs parāda darbību ieviešanu, izmantojot zip un diapazona funkcijas:

numurus= ['nulle', 'divi', 'četri', 'seši']

priekšrādītājs,lietaiekšā rāvējslēdzējs(diapazons(0, 7, 2),numurus):

drukāt (rādītājs,lieta)

Zip funkcija ļauj jums izveidot pārus, no diviem vai vairākiem atkārtojamiem elementiem paņemot elementus ar vienādu indeksu. Tātad zip funkcija šeit paņem elementu no atkārtojamās funkcijas, kas atgriezta no diapazona (0, 7, 2), un citu elementu no skaitļu saraksta un pēc tam pārī tos abus kartē. Gala rezultāts ir identisks īstenošanai ar uzskaitīšanas funkciju, bet ar pielāgotajām darbībām, kas norādītas kā trešais arguments diapazona (0, 7, 2) funkcijā (šajā gadījumā - 2). Pēc iepriekš norādītā koda parauga palaišanas jums vajadzētu iegūt šādu izvadi:

0 nulle

2 divi

4 četri

6 seši

Secinājums

Python uzskaitīšanas funkcija ļauj rakstīt kodolīgu kodu, piešķirot skaitļu secību atkārtojamā objekta elementiem. Tas ir patiešām noderīgi, ja vēlaties izsekot atkārtota tipa vienumu indeksam. Ja vēlaties uzskaitīt atkārtojamus veidus, izmantojot pielāgotas darbības, izmantojiet zip funkciju, kas izskaidrota pēdējā piemērā.