Gumamit ng Enumerate Function sa Python upang Lumikha ng Mga loop na may Mga counter

Use Enumerate Function Python Create Loops With Counters



Ipapaliwanag ng artikulong ito ang paggamit ng pagpapaandar na pag-andar na magagamit sa karaniwang module ng module ng Python. Nagbibigay-daan sa iyo ang pag-andar ng enumerate na magtalaga ng isang index o mabibilang sa mga elemento sa anumang bagay na maaasahan. Maaari mo nang ipatupad ang karagdagang lohika sa kanila dahil magkakaroon ka ng access sa parehong mga halaga at isang bilang na nai-mapa dito.

Syntax at Pangunahing Halimbawa

Kung gumamit ka ng isang para sa loop sa iba pang mga wika ng pagprograma, lalo na ang wikang C at iba pang mga wika na mayroong C style syntax, maaaring tinukoy mo ang isang panimulang indeks sa loop. Para sa sanggunian, narito kung ano ang hitsura ng para sa loop sa C at iba pang mga wika na mayroong magkatulad na syntax:







para sa (intako= 0;ako< 10;ako++)

{

printf ('% d n',ako);

}

Pinasimulan ng pahayag ng loop ang isang variable na may halaga na zero, sinusuri na ito ay mas mababa sa isang threshold at nadaragdagan ito ng isang bilang pagkatapos suriin ang lohika sa loob ng loop block (kung natutugunan ang kundisyon ng paghinto). Sa ganitong paraan maaari mong gamitin ang isang index at italaga ito sa anumang mga bagay na isinangguni sa iyong loop block. Sa paghahambing, narito kung ano ang hitsura ng para sa loop na may parehong resulta sa Python:



para saakosa saklaw(0, 10):

mag-print (ako)

Pinapayagan ka ng pag-andar sa saklaw sa Python na tukuyin ang isang pagkakasunud-sunod ng saklaw ng numero na may isang default na hakbang na 1. Maaari mong baguhin ang halaga ng hakbang sa pamamagitan ng pagbibigay ng pangatlong argument. Ang pangalawang argumento sa pag-andar sa saklaw ay ginagamit upang itakda ang threshold para sa kundisyon ng paghinto. Ang parehong mga sample ng code ay gumagawa ng sumusunod na output:



0

1

2

3

4

5

6

7

8

9

Ang mga loop na ito ay gumagana nang maayos kung nais mo lamang makabuo ng ilang pagkakasunud-sunod ng bilang at iugnay ang mga ito sa ilang lohika sa loob ng pahayag ng loop. Gayunpaman, maaaring kailangan mong gumamit ng isa pang nakapugad na loop o gamitin ang pag-andar ng ani sa anumang iterable na uri upang magtalaga sa kanila ng ilang uri ng masusubaybayan na bilang. Ginagawang madali ng pamamaraang enumerate ang pagtatalaga ng mga index sa mga iterable sa isang pahayag, sa gayong paraan tinatanggal ang pangangailangan para sa pagpapatakbo ng maraming mga naka-punong mga loop. Tingnan ang sample ng code na ito:





numero= ['zero', 'isa', 'dalawa', 'tatlo', 'apat', 'limang']

binilang_number= nakalista(numero)

para saindeks,itemsaenumerated_number:

mag-print (indeks,item)

Ang unang pahayag ay tumutukoy sa isang bagong variable na tinatawag na mga numero at nagtatalaga ng isang umuulit (uri ng listahan) dito. Ipinapakita ng pangalawang pahayag ang paggamit ng pagpapaandar na bilangin kung saan ka naghahatid ng isang umuulit dito bilang isang sapilitan na argument. Ang pangatlong pahayag ay nagko-convert ang variable na enumerated_number sa isang uri ng listahan ng object. Bilang default, ang pag-andar sa pag-enumerate ay bumubuo ng isang bagay na bumibilang na uri at hindi isang umuulit na uri, kaya kailangan mo itong i-convert. Matapos patakbuhin ang sample ng code na nabanggit sa itaas, dapat mong makuha ang sumusunod na output:

[(0, 'zero'), (1, 'one'), (2, 'two'), (3, 'three'), (4, 'four'), ​​(5, 'five')]

Ang pag-andar sa pag-enumerate ay nagtatalaga ng bilang sa bawat elemento sa isang umuulit na uri at lumilikha ng mga tuple na mayroong mga ipinares na halaga. Bilang default, ang bilang ay nagsisimula mula sa zero.



Ngayon na nakatalaga ka ng isang numero sa bawat elemento sa isang umuulit na uri, madali mong maililibot ito nang hindi nagsusulat ng mga nakapugad na pahayag:

numero= ['zero', 'isa', 'dalawa', 'tatlo', 'apat', 'limang']

binilang_number= nakalista(numero)

para saindeks,itemsaenumerated_number:

mag-print (indeks,item)

Ang sample ng code na tinukoy sa itaas ay makagawa ng sumusunod na output:

0 zero

1 isa

2 dalawa

3 tatlo

4 apat

5 lima

Maaari mong gawing mas maikli ang code sa pamamagitan ng paggamit ng enumerate function inline, tulad ng ipinakita sa sample sa ibaba:

numero= ['zero', 'isa', 'dalawa', 'tatlo', 'apat', 'limang']

para saindeks,itemsa nakalista(numero):

mag-print (indeks,item)

Paggamit ng Enumerate na may Iba't ibang Simula ng Index

Ang pagpapaandar sa pag-enumerate ay tumatagal ng isang opsyonal na argumento kung saan maaari mong tukuyin ang isang panimulang index. Bilang default ito ay zero, ngunit maaari mo itong baguhin sa pamamagitan ng paggamit ng start argument:

numero= ['isa', 'dalawa', 'tatlo', 'apat', 'limang']

para saindeks,itemsa nakalista(numero,umpisahan=1):

mag-print (indeks,item)

Sa pangalawang pahayag, ang start = 1 argument ay ginagamit upang mabago ang panimulang punto. Matapos patakbuhin ang sample ng code na tinukoy sa itaas, dapat mong makuha ang sumusunod na output:

1 isa

2 dalawa

3 tatlo

4 apat

5 lima

Pagtatalaga ng Index na may Mga Hakbang

Sa unang seksyon ng artikulong ito, ipinakita ang syntax para sa loop sa wikang C kung saan maaari mong tukuyin ang mga hakbang sa pagitan ng bawat kasunod na bilang o index. Ang pag-andar sa pag-enumerate sa Python ay walang anumang naturang argument na magagamit kaya hindi mo matukoy ang isang hakbang sa pagitan ng mga bilang. Maaari mo talagang isulat ang iyong sariling lohika upang magpatupad ng mga hakbang sa loob ng enumerated para sa loop block. Gayunpaman, mayroong isang paraan upang magpatupad ng mga pasadyang hakbang sa pamamagitan ng pagsulat ng kaunting code. Ipinapakita ng sumusunod na halimbawa ang pagpapatupad ng mga hakbang na gumagamit ng mga pagpapaandar ng zip at saklaw:

numero= ['zero', 'dalawa', 'apat', 'anim']

para saindeks,itemsa zip(saklaw(0, 7, 2),numero):

mag-print (indeks,item)

Pinapayagan ka ng pagpapaandar ng zip na lumikha ng mga pares sa pamamagitan ng pagpili ng mga elemento na mayroong parehong index mula sa dalawa o higit pang mga iterable. Kaya't ang pagpapaandar ng zip dito ay nakakakuha ng isang elemento mula sa paulit-ulit na ibinalik mula sa pag-andar ng saklaw (0, 7, 2) at isa pang elemento mula sa listahan ng mga numero at pagkatapos ay ipares ang dalawa sa isang tuple. Ang huling resulta ay isang magkatulad na pagpapatupad sa pagpapaandar na pag-enumerate ngunit may pasadyang mga hakbang na tinukoy bilang isang pangatlong argument sa saklaw (0, 7, 2) na pag-andar (2 sa kasong ito). Matapos patakbuhin ang sample ng code na tinukoy sa itaas, dapat mong makuha ang sumusunod na output:

0 zero

2 dalawa

4 apat

6 anim

Konklusyon

Ang pag-andar sa enumerate sa Python ay nagbibigay-daan sa iyo upang sumulat ng maikling code sa pamamagitan ng pagtatalaga ng isang pagkakasunud-sunod ng numero sa mga elemento sa isang umuugong bagay. Ito ay talagang kapaki-pakinabang kung nais mong subaybayan ang index ng mga item sa loob ng isang umuulit na uri. Kung nais mong enumerate ang mga umuulit na uri na may pasadyang mga hakbang, gamitin ang pagpapaandar ng zip na ipinaliwanag sa huling halimbawa.