Upotrijebite funkciju nabrajanja u Pythonu za stvaranje petlji s brojačima

Use Enumerate Function Python Create Loops With Counters



U ovom će članku biti objašnjeno korištenje funkcije nabrajanja dostupne u standardnoj knjižnici modula Pythona. Funkcija Enumerate omogućuje vam dodjeljivanje indeksa ili broja elementima u bilo kojem iterabilnom objektu. Zatim možete primijeniti daljnju logiku na njih jer ćete imati pristup objema vrijednostima i brojevima preslikanim na nju.

Sintaksa i osnovni primjer

Ako ste for petlju koristili u drugim programskim jezicima, osobito u jeziku C i drugim jezicima sa sintaksom u stilu C, možda ste u petlji naveli početni indeks. Za referencu, evo kako for petlja izgleda u C -u i drugim jezicima sa sličnom sintaksom:







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

{

printf ('%d n',i);

}

Naredba petlje inicijalizira varijablu koja ima vrijednost nulu, provjerava je li manja od praga i povećava je za jedan broj nakon procjene logike unutar bloka petlje (ako je uvjet zaustavljanja ispunjen). Na ovaj način možete koristiti indeks i dodijeliti ga svim objektima navedenim u vašem bloku petlje. Za usporedbu, evo kako for petlja s istim rezultatom izgleda u Pythonu:



zaiu domet(0, 10):

ispisati (i)

Funkcija raspona u Pythonu omogućuje vam da odredite niz nizova koji ima zadani korak 1. Vrijednost koraka možete promijeniti unošenjem trećeg argumenta. Drugi argument u funkciji raspona koristi se za postavljanje praga uvjeta zaustavljanja. Oba uzorka koda proizvode sljedeće rezultate:



0

1

2

3

4

5

6

7

8

9

Ove petlje rade dobro ako samo želite generirati neki niz brojeva i povezati ih s nekom logikom unutar naredbe petlje. Međutim, možda ćete morati upotrijebiti drugu ugniježđenu petlju ili funkciju prinosa na bilo kojoj iterabilnoj vrsti kako biste im dodijelili neku vrstu broja koji se može pratiti. Metoda enumerate olakšava dodjeljivanje indeksa iterabilima u jednoj naredbi, čime se uklanja potreba za pokretanjem više ugniježđenih petlji. Pogledajte ovaj uzorak koda:





brojevima= ['nula', 'jedan', 'dva', 'tri', 'četiri', 'pet']

nabrojani_brojevi= naveden(brojevima)

zaindeks,artikalunabrojani_brojevi:

ispisati (indeks,artikal)

Prva naredba definira novu varijablu koja se naziva brojevi i dodjeljuje joj iterabilnu (vrstu popisa). Drugi izraz prikazuje upotrebu funkcije enumerate gdje joj dostavljate iterabilni kao obavezni argument. Treći izraz pretvara varijablu enumerated_numbers u objekt vrste popisa. Prema zadanim postavkama, funkcija enumerate generira objekt tipa enumerate, a ne tip koji se može ponavljati, pa ga morate pretvoriti. Nakon pokretanja gore spomenutog uzorka koda, trebali biste dobiti sljedeći izlaz:

[(0, 'nula'), (1, 'jedan'), (2, 'dva'), (3, 'tri'), (4, 'četiri'), (5, 'pet')]

Funkcija enumerate dodjeljuje odbrojavanje svakom elementu u iterabilnom tipu i stvara tuplee koji imaju uparene vrijednosti. Prema zadanim postavkama, odbrojavanje počinje od nule.



Sada kada ste dodijelili broj svakom elementu u iterabilnoj vrsti, možete ga lako prebaciti bez pisanja ugniježđenih izraza:

brojevima= ['nula', 'jedan', 'dva', 'tri', 'četiri', 'pet']

nabrojani_brojevi= naveden(brojevima)

zaindeks,artikalunabrojani_brojevi:

ispisati (indeks,artikal)

Gore navedeni uzorak koda proizvest će sljedeće rezultate:

0 nula

1 jedan

2 dva

3 tri

4 četiri

5 pet

Kôd možete skratiti pomoću funkcije enumerate inline, kao što je prikazano u donjem primjeru:

brojevima= ['nula', 'jedan', 'dva', 'tri', 'četiri', 'pet']

zaindeks,artikalu naveden(brojevima):

ispisati (indeks,artikal)

Korištenje nabrajanja s različitim početnim indeksom

Funkcija enumerate uzima opcijski argument u kojem možete navesti početni indeks. Zadano je nula, ali možete je promijeniti korištenjem startnog argumenta:

brojevima= ['jedan', 'dva', 'tri', 'četiri', 'pet']

zaindeks,artikalu naveden(brojevima,početak=1):

ispisati (indeks,artikal)

U drugom izrazu start = 1 argument se koristi za promjenu početne točke. Nakon pokretanja gore navedenog uzorka koda, trebali biste dobiti sljedeći izlaz:

1 jedan

2 dva

3 tri

4 četiri

5 pet

Dodjeljivanje indeksa u koracima

U prvom odjeljku ovog članka prikazana je sintaksa for petlje na jeziku C gdje možete definirati korake između svakog sljedećeg broja ili indeksa. Funkcija nabrajanja u Pythonu nema dostupne takve argumente pa ne možete navesti korak između brojanja. Zaista možete napisati vlastitu logiku za implementaciju koraka unutar nabrojanog bloka petlje. Međutim, postoji način da se implementiraju prilagođeni koraci pisanjem minimalnog koda. Sljedeći primjer prikazuje provedbu koraka pomoću funkcija zip i raspona:

brojevima= ['nula', 'dva', 'četiri', 'šest']

zaindeks,artikalu zatvarač(domet(0, 7, 2),brojevima):

ispisati (indeks,artikal)

Zip funkcija omogućuje vam stvaranje parova prikupljanjem elemenata koji imaju isti indeks iz dvije ili više iterabilnosti. Dakle, funkcija zip ovdje pokupi element iz iterabilne funkcije vraćene iz raspona (0, 7, 2) i drugi element s popisa brojeva, a zatim ih oboje upari u tuple. Krajnji rezultat je identična implementacija funkcije nabrajanja, ali s prilagođenim koracima navedenim kao treći argument u funkciji raspona (0, 7, 2) (2 u ovom slučaju). Nakon pokretanja gore navedenog uzorka koda, trebali biste dobiti sljedeći izlaz:

0 nula

2 dva

4 četiri

6 šest

Zaključak

Funkcija enumerate u Pythonu omogućuje vam pisanje sažetog koda dodjeljivanjem numeričkog niza elementima u iterabilnom objektu. Ovo je doista korisno ako želite pratiti indeks stavki unutar iterabilnog tipa. Ako želite nabrojati iterabilne vrste prilagođenim koracima, upotrijebite zip funkciju objašnjenu u posljednjem primjeru.