Utilizați funcția Enumerate în Python pentru a crea bucle cu contoare

Use Enumerate Function Python Create Loops With Counters



Acest articol va explica utilizarea funcției de enumerare disponibilă în biblioteca standard de module Python. Funcția Enumerare vă permite să atribuiți un index sau să numărați elemente din orice obiect iterabil. Apoi, puteți implementa logici suplimentare pe ele, deoarece veți avea acces la ambele valori și la un număr mapat la aceasta.

Sintaxă și exemplu de bază

Dacă ați folosit o buclă pentru alte limbaje de programare, în special limbajul C și alte limbaje cu sintaxă în stil C, este posibil să fi specificat un index de pornire în buclă. Pentru referință, iată cum arată o buclă for în C și în alte limbi cu sintaxă similară:







pentru (inteu= 0;eu< 10;eu++)

{

printf ('% d n',eu);

}

Instrucțiunea buclă inițializează o variabilă cu o valoare zero, verifică dacă este mai mică decât un prag și o incrementează cu un număr după evaluarea logicii din interiorul blocului buclă (dacă condiția de oprire este îndeplinită). În acest fel puteți utiliza un index și îl puteți atribui oricăror obiecte la care se face referire în blocul dvs. de buclă. În comparație, iată cum arată o buclă for cu același rezultat în Python:



pentrueuîn gamă(0, 10):

imprimare (eu)

Funcția de interval din Python vă permite să specificați o secvență de interval de numere care are un pas implicit de 1. Puteți modifica valoarea pasului furnizând un al treilea argument. Al doilea argument din funcția interval este utilizat pentru a seta pragul pentru condiția de oprire. Ambele probe de cod produc următoarea ieșire:



0

1

2

3

4

5

6

7

8

9

Aceste bucle funcționează bine dacă doriți doar să generați o anumită secvență de numere și să le asociați cu o anumită logică din instrucțiunea buclă. Cu toate acestea, este posibil să trebuiască să utilizați o altă buclă imbricată sau să utilizați funcția de randament pe orice tip iterabil pentru a le atribui un fel de număr de urmărire. Metoda de enumerare facilitează atribuirea indexurilor iterabile într-o singură declarație, eliminând astfel necesitatea de a rula mai multe bucle imbricate. Aruncați o privire la acest exemplu de cod:





numere= ['zero', 'unu', 'Două', 'Trei', „patru”, 'cinci']

numere_enumerate= enumerate(numere)

pentruindex,articolînnumere_enumerate:

imprimare (index,articol)

Prima declarație definește o nouă variabilă numită numere și îi atribuie un iterabil (tip listă). A doua afirmație arată utilizarea funcției enumerate în cazul în care îi furnizați un iterabil ca argument obligatoriu. A treia declarație convertește variabila enumerated_numbers într-un obiect de tip listă. În mod implicit, funcția de enumerare generează un obiect de tip enumerare și nu un tip iterabil, deci trebuie să îl convertiți. După rularea eșantionului de cod menționat mai sus, ar trebui să obțineți următoarea ieșire:

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

Funcția de enumerare atribuie un număr fiecărui element într-un tip iterabil și creează tupluri cu valori asociate. În mod implicit, numărul începe de la zero.



Acum că ați atribuit un număr fiecărui element într-un tip iterabil, puteți trece cu ușurință peste el fără a scrie instrucțiuni imbricate:

numere= ['zero', 'unu', 'Două', 'Trei', „patru”, 'cinci']

numere_enumerate= enumerate(numere)

pentruindex,articolînnumere_enumerate:

imprimare (index,articol)

Eșantionul de cod specificat mai sus va produce următoarea ieșire:

0 zero

1 unu

2 doi

3 trei

4 patru

5 cinci

Puteți face codul mai scurt utilizând funcția de enumerare în linie, așa cum se arată în exemplul de mai jos:

numere= ['zero', 'unu', 'Două', 'Trei', „patru”, 'cinci']

pentruindex,articolîn enumerate(numere):

imprimare (index,articol)

Utilizarea Enumerate cu un index de pornire diferit

Funcția de enumerare ia un argument opțional în care puteți specifica un index de pornire. În mod implicit, este zero, dar îl puteți modifica folosind argumentul start:

numere= ['unu', 'Două', 'Trei', „patru”, 'cinci']

pentruindex,articolîn enumerate(numere,start=1):

imprimare (index,articol)

În a doua afirmație, argumentul start = 1 este utilizat pentru a schimba punctul de plecare. După rularea eșantionului de cod specificat mai sus, ar trebui să obțineți următoarea ieșire:

1 unu

2 doi

3 trei

4 patru

5 cinci

Atribuirea indexului cu pași

În prima secțiune a acestui articol, este afișată sintaxa pentru bucla for în limbajul C, unde puteți defini pași între fiecare număr sau index ulterior. Funcția de enumerare din Python nu are un astfel de argument disponibil, astfel încât nu puteți specifica un pas între numărare. Puteți scrie într-adevăr propria logică pentru a implementa pași în interiorul blocului enumerat pentru buclă. Cu toate acestea, există o modalitate de a implementa pași personalizați prin scrierea unui cod minim. Următorul exemplu arată implementarea pașilor utilizând funcțiile zip și range:

numere= ['zero', 'Două', „patru”, 'şase']

pentruindex,articolîn fermoar(gamă(0, 7, 2),numere):

imprimare (index,articol)

Funcția zip vă permite să creați perechi prin preluarea elementelor care au același index din două sau mai multe iterabile. Deci, funcția zip aici preia un element din funcția iterabilă returnată din intervalul (0, 7, 2) și un alt element din lista numerelor și apoi le împerechează pe amândouă într-un tuplu. Rezultatul final este o implementare identică cu funcția de enumerare, dar cu pași personalizați specificați ca al treilea argument în funcția intervalului (0, 7, 2) (2 în acest caz). După ce rulați exemplul de cod specificat mai sus, ar trebui să obțineți următoarea ieșire:

0 zero

2 doi

4 patru

6 șase

Concluzie

Funcția de enumerare din Python vă permite să scrieți cod concis prin atribuirea unei secvențe de numere elementelor dintr-un obiect iterabil. Acest lucru este foarte util dacă doriți să țineți evidența indexului articolelor dintr-un tip iterabil. Dacă doriți să enumerați tipuri iterabile cu pași personalizați, utilizați funcția zip explicată în ultimul exemplu.