Piton

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

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

Acest articol va explica utilizarea funcției „enumerare” disponibilă în biblioteca standard de module Python. Funcția Enumerare vă permite să atribuiți un „index” sau „numărare” elementelor din orice obiect iterabil. Apoi, puteți implementa o logică suplimentară asupra acestora, 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” în alte limbaje de programare, în special limbajul „C” și alte limbaje cu sintaxă stil „C”, este posibil să fi specificat un index de pornire în buclă. Pentru referință, iată cum arată o buclă „pentru” în „C” și în alte limbi cu sintaxă similară:

pentru (int i = 0; i < 10; i++)

printf ("% d \ n", i);

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ă este îndeplinită condiția de oprire). Î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:

pentru i în intervalul (0, 10):
print (i)

Funcția „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, poate fi necesar să utilizați o altă buclă imbricată sau să utilizați funcția „randament” pe orice tip iterabil pentru a le atribui un fel de număr de urmărire. Metoda „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 eșantion de cod:

numere = ["zero", "unu", "doi", "trei", "patru", "cinci"]
numere_enumerate = enumerate (numere)
pentru index, element în numere_enumerate:
print (index, item)

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 „enumerare” î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 „enumerare” generează un obiect de tip „enumerare” și nu un tip iterabil, deci trebuie să îl convertiți. După ce rulați exemplul 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 „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", "doi", "trei", "patru", "cinci"]
numere_enumerate = enumerate (numere)
pentru index, element în numere_enumerate:
print (index, item)

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 „enumerare” în linie, așa cum se arată în exemplul de mai jos:

numere = ["zero", "unu", "doi", "trei", "patru", "cinci"]
pentru index, element în enumerare (numere):
print (index, item)

Utilizarea Enumerate cu un index de pornire diferit

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

numere = ["una", "două", "trei", "patru", "cinci"]
pentru index, element în enumerare (numere, start = 1):
print (index, item)

În a doua afirmație, argumentul „start = 1” este utilizat pentru a schimba punctul de plecare. După ce rulați exemplul 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 „pentru” în limbajul „C” unde puteți defini pași între fiecare număr sau index ulterior. Funcția „enumerare” din Python nu are un astfel de argument disponibil, deci nu puteți specifica un pas între numărare. Puteți scrie într-adevăr propria logică pentru a implementa pași în blocul de buclă „pentru” enumerat. 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 folosind funcțiile „zip” și „range”:

numere = ["zero", "două", "patru", "șase"]
pentru index, element în zip (interval (0, 7, 2), numere):
print (index, item)

Funcția „zip” vă permite să creați perechi prin preluarea elementelor cu același index din două sau mai multe iterabile. Deci, funcția „zip” aici preia un element din iterabilul returnat din funcția „range (0, 7, 2)” și un alt element din lista „numere” și apoi le împerechează pe amândouă într-un tuplu. Rezultatul final este o implementare identică cu funcția „enumerare”, dar cu pași personalizați specificați ca al treilea argument în funcția „interval (0, 7, 2)” (2 în acest caz). După rularea eșantionului 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 „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ă urmăriți indexul 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.

Instalați cel mai recent joc de strategie OpenRA pe Ubuntu Linux
OpenRA este un motor de jocuri de strategie în timp real Libre / Free care recreează primele jocuri Westwood, cum ar fi clasicul Command & Conquer: Re...
Instalați cel mai recent Dolphin Emulator pentru Gamecube și Wii pe Linux
Emulatorul Dolphin vă permite să jucați jocurile alese de Gamecube și Wii pe computerele personale Linux (PC). Fiind un emulator de joc liber disponi...
Cum se folosește GameConqueror Cheat Engine în Linux
Articolul acoperă un ghid despre utilizarea sistemului de înșelăciune GameConqueror în Linux. Mulți utilizatori care joacă jocuri pe Windows folosesc ...