Home » Articole » Articole » Calculatoare » Programare » Python » Iterarea printr-o matrice în Python

Iterarea printr-o matrice în Python

postat în: Python 0

Cel mai adesea, vom folosi o buclă for pentru a „face o buclă prin” sau a „itera prin” conținutul unei variabile de date agregate. Aceasta înseamnă că în loc să executăm un fragment de cod o dată, îl vom executa o dată pentru fiecare element al variabilei. Acest lucru „o dată per element” este ceea ce face codul neliniar.

Să începem cu primul tip de date agregate pe care l-am învățat, o matrice NumPy.

1: villains = np.array(['Jafar','Ursula','Scar','Gaston']) 
2: print("Here we go!") 
3: for v in villains: 
4:    print("Oooo, {} is scary!".format(v)) 
5:    print("({} has {} letters.)".format(v, len(v))) 
6: print("Whew!")

(Am numerotat liniile din acest exemplu, astfel încât să mă pot referi la ele în textul de mai jos, dar numerele și două puncte nu fac parte din Python.)

Imediat după crearea matricei noastre și tipărirea unui mesaj introductiv, întâlnim prima noastră buclă. O buclă este formată din două părți: antetul buclei și corpul buclei. Iată regulile:

  • Antetul buclei este format din linia care începe cu „for”.
  • Corpul buclei este format din toate liniile următoare consecutive care sunt indentate (suprapuse peste) o filă. (2)

A doua regulă se dovedește a fi mai importantă decât pare la început. O eroare foarte (foarte!) obișnuită în rândul începătorilor este să-și „indenteze greșit” codul, astfel încât corpul buclei să includă mai mult sau mai puțin decât intenționează. Deci mare atenție.

Înainte de a continua, priviți codul de mai sus și convingeți-vă de aceste două fapte:

Antetul buclei este linia 3.
Corpul buclei este liniile 4 și 5. (Nu numai linia 4! Nu liniile 4, 5 și 6!)

Acum, motivul pentru care acest lucru este important este că o buclă for funcționează după cum urmează:

  1. Mai întâi, creați o nouă variabilă (în partea stângă a imaginii de memorie) numită oricum care urmează imediat după cuvântul „for”. (În acest exemplu, numele acestei noi variabile va fi v.)
  2. Apoi, pentru fiecare element al matricei, succesiv:
    1. Setați valoarea acelei variabile la următorul element al matricei.
    2. Executați întregul corp al buclei. (În acest exemplu, rândurile 4-5.)

Prin urmare, în exemplul cu villains, rândurile în ordinea execuției sunt:

1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 6.

(De acord?)

Imaginea memoriei se schimbă constant pe parcursul oricărui program, inclusiv a celor care conțin bucle. Să facem un instantaneu al memoriei cum apare imediat după executarea liniei 3 a doua oară. Cu alte cuvinte, vom rula programul până aici înainte de a apăsa butonul de pauză:

1, 2, 3, 4, 5, 3, Stop!!

Memoria în acest moment este prezentată în Figura 14.1. A doua oară când am executat linia 3, am stabilit v (uneori numită variabila buclă, apropo) la al doilea element al matricei, „Ursula”. Suntem pe cale să executăm linia 4 pentru a doua oară. Rețineți că matricea villains nu este afectată de întregul proces de buclă: numai variabila noastră de buclă temporară, inventată (v) primește o nouă valoare de fiecare dată.

Rezultatul complet al programului, după cum puteți deduce cu ușurință, este astfel:

Figura 14.1: Un instantaneu al memoriei imediat după a doua execuție a liniei 3 a programului villains.

▐ Here we go! 
▐ Oooo, Jafar is scary! 
▐ (Jafar has 5 letters.) 
▐ Oooo, Ursula is scary! 
▐ (Ursula has 6 letters.) 
▐ Oooo, Scar is scary! 
▐ (Scar has 4 letters.) 
▐ Oooo, Gaston is scary! 
▐ (Gaston has 6 letters.) 
▐ Whew!

Nu ratați faptul că „scary!” și mesajele „has n letters” au fost tipărite de patru ori fiecare, în timp ce „Whew!” a apărut o singură dată. Asta are totul de-a face cu indentarea: i-a spus lui Python că liniile 4 și 5 făceau parte din corpul buclei, în timp ce linia 6 era doar „chestii ca de obicei”, având loc numai după ce toată bucla s-a terminat.

  • (2) Alte limbaje de programare – toate celelalte pe care le cunosc, în afară de Python, de fapt – folosesc o altă modalitate de a desemna corpul buclei decât indentarea. Multe (R și Java, de exemplu) folosesc acolade înainte și după corpul buclei, astfel încât computerul să știe unde începe și unde se termină. Îmi place personal această caracteristică a lui Python, dar există și neplăceri, iar concluzia este că trebuie doar să te obișnuiești cu ea.

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu. © 2024 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Statistica pentru afaceri
Statistica pentru afaceri

Instrumentul esențial pentru decizii inteligente în mediul de afaceri!

Nu a fost votat 18.29 lei39.18 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Rețele de comunicații 5G
Rețele de comunicații 5G

Descoperă cum 5G transformă lumea și pregătește-te să fii parte din viitor.

Nu a fost votat 13.70 lei31.53 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Etica Big Data în cercetare
Etica Big Data în cercetare

Principalele probleme cu care se confruntă oamenii de știință în lucrul cu seturile mari de date (Big Data), evidențiind principale aspecte etice, luând în considerare inclusiv legislația din Uniunea Europeană. După o scurtă Introducere despre Big Data, secțiunea Tehnologia prezintă … Citeşte mai mult

Nu a fost votat 0.00 lei10.77 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *