Matrices (2D Lists)
O matrice este o grilă de numere organizate în rânduri și coloane. Gândește-te la o foaie de calcul, o tablă de șah sau un ecran de pixeli: toate sunt grile. În Python, reprezentăm o matrice ca o listă de liste
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Aceasta este o matrice 3×3 (3 rânduri, 3 coloane). Fiecare listă interioară este un rând
Ca să accesăm un element, folosim doi indecși: matrice[rand][coloana]
print(matrice[0][0]) # 1 (randul 0, coloana 0)
print(matrice[1][2]) # 6 (randul 1, coloana 2)
print(matrice[2][1]) # 8 (randul 2, coloana 1)
Ca să parcurgem fiecare element, folosim bucle imbricate
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for rand in matrice:
for element in rand:
print(element, end=" ")
print()
Ieșire
1 2 3
4 5 6
7 8 9
Bucla exterioară parcurge fiecare rând (care este o listă). Bucla interioară parcurge fiecare element din acel rând. print() de la final începe o linie nouă după fiecare rând
Dacă avem nevoie de indecși (ca să știm unde suntem)
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for i in range(len(matrice)):
for j in range(len(matrice[i])):
print(f"[{i}][{j}] = {matrice[i][j]}")
Operații frecvente pe matrice
Suma tuturor elementelor
total = 0
for rand in matrice:
for element in rand:
total += element
print(total)
Rezultat 45
Găsește maximul
cel_mai_mare = matrice[0][0]
for rand in matrice:
for element in rand:
if element > cel_mai_mare:
cel_mai_mare = element
print(cel_mai_mare)
Rezultat 9
Un caz de utilizare din viața reală: imaginează-ți o hartă de joc unde 0 este gol și 1 este un zid
harta_joc = [
[0, 0, 1, 0],
[0, 1, 0, 0],
[0, 0, 0, 1],
[1, 0, 0, 0]
]
ziduri = 0
for rand in harta_joc:
for celula in rand:
if celula == 1:
ziduri += 1
print(f"Numarul de ziduri: {ziduri}")
Rezultat Numarul de ziduri: 4
Misiune: Grila de Senzori
Senzorii de pe carena stației își raportează citirile sub forma unei grile 4×4 (o listă de liste numită grila). Controlul Misiunii vrea un rezumat rapid al grilei.
Folosind bucle imbricate, afișează:
- Suma fiecărui rând, câte una pe linie, etichetată
Rand 1:,Rand 2:, și așa mai departe (rândurile numerotate de la 1). Max:urmat de cea mai mare citire de oriunde din grilă.Peste 7:urmat de câte citiri sunt strict mai mari decât 7.
Ieșire
Rand 1: 22
Rand 2: 26
Rand 3: 15
Rand 4: 37
Max: 10
Peste 7: 7