Cum funcționează listele în Python
Listele sunt cea mai folosită structură de date în Python. Învață cum le creezi, le modifici, le parcurgi și ce metode trebuie să știi neapărat.
Dacă ar fi să alegi o singură structură de date pe care s-o stăpânești perfect în Python, aceea ar fi lista. O folosești peste tot: de la teme simple până la proiecte reale. Hai să vedem cum funcționează, pas cu pas.
Ce este o listă?
O listă e o colecție ordonată de elemente, ținute într-o singură variabilă. Elementele pot fi numere, șiruri de caractere, ba chiar alte liste.
fructe = ["mar", "para", "banana"]
numere = [10, 25, 3, 47]
amestec = [1, "doi", 3.0, True]
print(fructe) # ['mar', 'para', 'banana']
Lista se scrie între paranteze drepte [ ], cu elementele separate prin virgulă.
Accesarea elementelor
Fiecare element are un index, iar numărătoarea începe de la 0:
fructe = ["mar", "para", "banana"]
print(fructe[0]) # mar
print(fructe[2]) # banana
print(fructe[-1]) # banana (ultimul element)
Indexul negativ numără de la coadă: -1 e ultimul, -2 penultimul și așa mai departe.
Atenție: dacă ceri un index care nu există, primești o eroare
IndexError. O listă cu 3 elemente are indici valizi doar 0, 1 și 2.
Modificarea listelor
Spre deosebire de șiruri, listele sunt mutabile — le poți schimba după ce le-ai creat.
note = [8, 9, 7]
note[2] = 10 # schimbam un element
note.append(6) # adaugam la final
note.insert(1, 5) # inseram pe pozitia 1
note.remove(8) # stergem prima aparitie a lui 8
ultima = note.pop() # scoatem si returnam ultimul element
print(note)
Cele mai utile metode
| Metodă | Ce face |
|---|---|
append(x) | Adaugă x la final |
insert(i, x) | Inserează x pe poziția i |
remove(x) | Șterge prima apariție a lui x |
pop(i) | Scoate și returnează elementul de pe i |
sort() | Sortează lista pe loc |
reverse() | Inversează ordinea |
index(x) | Returnează poziția lui x |
count(x) | De câte ori apare x |
Parcurgerea unei liste
Cel mai des vei parcurge o listă cu o buclă for:
preturi = [12, 8, 25, 4]
total = 0
for pret in preturi:
total += pret
print("Total:", total) # Total: 49
Dacă ai nevoie și de index, folosește enumerate:
elevi = ["Ana", "Mihai", "Ioana"]
for i, nume in enumerate(elevi):
print(i, nume)
Felierea (slicing)
Poți lua o "felie" dintr-o listă cu sintaxa [start:stop]:
numere = [0, 1, 2, 3, 4, 5]
print(numere[1:4]) # [1, 2, 3]
print(numere[:3]) # [0, 1, 2]
print(numere[3:]) # [3, 4, 5]
print(numere[::-1]) # [5, 4, 3, 2, 1, 0] (inversat)
Capătul stop nu e inclus — [1:4] ia elementele de la 1 până la 3.
List comprehension: scurt și elegant
Când vrei să construiești o listă nouă pe baza alteia, Python îți oferă o sintaxă compactă:
patrate = [n * n for n in range(1, 6)]
print(patrate) # [1, 4, 9, 16, 25]
pare = [n for n in range(20) if n % 2 == 0]
print(pare) # [0, 2, 4, ..., 18]
Citește-o ca pe o propoziție: "pătratul lui n, pentru fiecare n din intervalul 1–5".
Greșeli des întâlnite
- Confunzi
appendcu+—appendadaugă un singur element;lista + altalipește două liste. - Modifici lista în timp ce o parcurgi — poate sări peste elemente. Mai bine creează o listă nouă.
- Crezi că
=copiază lista —b = aface cabșiasă fie aceeași listă. Pentru o copie reală:b = a.copy().
Concluzie
Listele sunt cărămida ta de bază pentru orice program Python: stochezi date, le parcurgi, le sortezi și le transformi. Exersează metodele de mai sus pe exemple proprii — un program care reține notele tale, o listă de cumpărături — și vor deveni reflex.
La ByteSchool înveți structurile de date cu mentori care le folosesc zilnic în Big Tech, pas cu pas, până le simți naturale. Te așteptăm.