InfoBook.ro ← Harta anului
Modul 04a · Clasa list (Python)
Modul 04a · Conținut 3.5

Echivalentul Python al vectorului: clasa list

În C++ ai tabloul (Modulul 04); în Python ai clasa list — aceeași idee, altă unealtă. Operatori, metode, slicing și funcțiile care lucrează pe colecții. Tot ce cere programa la punctul 3.5, cu laboratoare în care testezi pe loc.

🎯 Obiectiv 1Legi vectorul din C++ (Modulul 04) de clasa list din Python — același concept, două limbaje.
🎯 Obiectiv 2Stăpânești operatorii listei: indexare (și negativă!), slicing, in, +, *, comparare.
🎯 Obiectiv 3Aplici metodele: append, insert, pop, index, count, copy, sort — și eviți capcanele lor.
1

Operatori pe liste

Programa, punctul 3.5: acces la element, apartenență, concatenare, multiplicare, relaționare.

🔪 Laborator de indexare și slicing — joacă-te cu felia

v =
v[ : : ]

indexare — și negativă!

v[0] = primul; v[-1] = ultimul, v[-2] = penultimul. Indexurile negative numără de la coadă.

›fructe = ["mar","para","banana","kiwi"]
›fructe[0] # "mar" fructe[-1] # "kiwi"

apartenența — in / not in

Există elementul în listă? Returnează True/False.

›9 in [7, 9, 5] # True
›6 not in [7, 9, 5] # True

concatenare — operatorul +

Unește două liste într-una NOUĂ; originalele rămân neschimbate.

›[1,2,3] + [4,5] # [1,2,3,4,5]

multiplicare — operatorul *

Repetă elementele de n ori. Trucul clasic: lista de n zerouri.

›[0] * 5 # [0,0,0,0,0]
›v = [0] * n # init vector!

relaționare — compararea listelor

Lexicografic: element cu element, de la stânga, ca la dicționar.

›[1,2] < [1,3] # True (2 < 3) [1,2] < [1,2,3] # True (mai scurtă)
›[2] > [1,9,9] # True (2 > 1 decide imediat)
2

Funcții gata incluse care lucrează pe liste

Vin cu Python, fără niciun import. Pe o listă, cinci funcții îți rezolvă aproape orice numărătoare:

len(x) — lungimea

Numărul de elemente dintr-o listă.

›len([7, 9, 5, 10]) # 4
›len([1, 2, 3]) # 3 len([]) # 0

min(…) · max(…)

Argumente separate SAU o singură listă.

›min(5, 3, 8) # 3 max([7,9,5]) # 9
›min([4, 2, 7]) # 2

sum(listă) — suma

Suma elementelor; opțional o valoare de start. Media = sum/len!

›sum([7,9,5,10,8]) # 39
›sum(note) / len(note) # media

sorted · type · range

sorted() = listă NOUĂ sortată · type() = tipul · range() = secvențe.

›sorted([5,2,8]) # [2,5,8]
›list(range(0,10,2)) # [0,2,4,6,8]

🎛 Laborator — cele cinci funcții pe aceeași listă

v =
Media = sum(v) / len(v) — cel mai frecvent combo din teme. Funcțiile numerice (abs, round, int/float, √) le găsești în Modulul 06, alături de echivalentele lor din C++.
3

Metodele clasei list

Programa, punctul 3.5: index, count, pop, insert, append, copy, sort. Le apeși — lista vie de mai jos reacționează.

⚗ Laborator de metode — lista vie

v = x = poz =
alege o metodă 👆

⚠ Capcana .copy() — de ce b = a NU e o copie

GREȘIT: b = a — același balon, două sfori

a
b
[1, 2, 3]

CORECT: b = a.copy() — două liste separate

a →
[1, 2, 3]
b →
[1, 2, 3]
b = a leagă DOUĂ nume de ACEEAȘI listă. b = a.copy() creează o listă independentă.

📚 Tabel recapitulativ — metodele listei

MetodăCe faceReturnează
.append(x)adaugă x la finalNone
.insert(i, x)inserează x la poziția i, restul se mută la dreaptaNone
.pop(i)elimină și returnează elementul de la i (fără i: ultimul)elementul eliminat
.index(x)poziția primei apariții — EROARE dacă x nu există!int
.count(x)numărul aparițiilor lui x (0 dacă lipsește)int
.copy()copie independentălist (nouă)
.sort()sortează crescător IN-PLACE (reverse=True: descrescător)None
Două capcane de nota 10: ① x = note.sort() → x va fi None! Vrei o copie sortată? x = sorted(note). ② .index(x) pe un element inexistent aruncă eroare — verifică întâi cu if x in v:.
4

List comprehensions — construire rapidă

O listă întreagă, dintr-o singură expresie. Foarte „pythonic" — și foarte util la teme.

⚡ Încearcă șabloanele clasice

Anatomia: [expresie for element in sursă if condiție] — „ia fiecare element din sursă, păstrează-l dacă trece condiția, transformă-l cu expresia". Partea cu if e opțională.

📥 Citirea unei linii de numere — metoda .split()

input() citește o linie întreagă ca text. Metoda .split() o taie în bucăți la spații și returnează o listă de șiruri. Cu un comprehension le transformi în numere:

›input() # "3 1 4 1 5" (un singur text)
›input().split() # ["3", "1", "4", "1", "5"] (listă de text)
›[int(x) for x in input().split()] # [3, 1, 4, 1, 5] (numere)
5

Exerciții rezolvate

Cinci probleme cu clasa list. Fiecare are cerința și un exemplu de intrare/ieșire; apasă „Vezi rezolvarea" pentru codul complet în C++ și Python.

Input standardizat: întâi n (numărul de elemente), apoi valorile pe linia următoare — identic în ambele limbaje.
6

Test interactiv — funcții Python & liste

8 întrebări. Fiecare răspuns e într-una din secțiunile de mai sus.

7

Fișa de sinteză

Python-ul de zi cu zi, pe scurt.

Funcții pe colecții (fără import): len, min, max, sum, sorted. (abs, round, int/float sunt în Modulul 06.)
Vector C++ ↔ listă Python: int v[n] / v[i] ↔ v = [] / v[i] — același concept, altă sintaxă.
Media = sum(v) / len(v) — cel mai frecvent combo din teme.
Indexare negativă: v[-1] = ultimul. Slicing: v[start:stop:pas], stop exclusiv; v[::-1] inversează.
Operatori: in (apartenență), + (concatenare), * (repetare — [0]*n!), comparare lexicografică.
Metode: append, insert, pop, index, count, copy, sort — append/insert/sort returnează None!
b = a NU copiază — leagă două nume de aceeași listă. Copie reală: b = a.copy().
Citire rapidă (cu comprehension): v = [int(x) for x in input().split()] — reflex pentru orice temă Python.
🐍 Descarcă fișierul Python al lecțieiClasa_List_Python.py — toate noțiunile + 5 exerciții după fiecare capitol, într-un singur fișier rulabil, comentat linie cu linie. Deschide-l în VS Code și scrie-l live cu clasa. ⬇ descarcă
← anteriorModul 04 · Vectori — bază urmează →Modul 05 · Subprograme