Didaxis
lecție · Informatică

Liste Python

Indexare, feliere, operatori și metode de bază ale clasei list.

Se face în:
Clasa a IX-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 2 · rezumatul lecției

Pe scurt

Lista Python este o colecție ordonată, modificabilă și indexată de la zero. append adaugă la sfârșit, pop elimină și întoarce un element, iar felierea v[a:b] ia elementele de la indicele a până la b−1. O listă poate conține elemente de tipuri diferite, deși datele uniforme sunt de obicei mai ușor de prelucrat algoritmic.

Desen la lecția „Liste Python”
2în detaliustratul 2 din 2 · pentru clasă și Bacalaureat

În detaliu

Lista Python (list) este o colecție ordonată, modificabilă și indexată de la zero; poate conține elemente de orice tip și are lungime variabilă. Metodele de bază sunt: append(x) (adaugă la sfârșit), insert(i, x) (inserează pe poziția i), pop() (elimină și întoarce ultimul element), pop(i) (elimină și întoarce elementul de pe poziția i), remove(x) (elimină prima apariție a valorii x), index(x) (poziția primei apariții), sort() (ordonează lista) și count(x) (numărul aparițiilor). Funcția len(v) dă numărul de elemente. Indicele negativ numără de la sfârșit: v[-1] este ultimul element. Felierea v[a:b] produce o listă nouă cu elementele de la indicele a până la b - 1; v[:b] pornește de la început, v[a:] merge până la sfârșit, iar v[::-1] produce lista inversată. Operatorul + concatenează două liste, * repetă elementele, iar in verifică apartenența.

Exemplul 1 — adăugare și eliminare.

v = [2, 4, 6]
v.append(8)
x = v.pop(1)
print(x, v)

După append, lista este . Apelul pop(1) scoate valoarea de pe poziția 1, adică 4, și o întoarce; lista rămâne . Se afișează 4 [2, 6, 8]. Operația modifică lista, iar x primește elementul eliminat. Dacă ar fi fost pop() fără argument, ar fi scos ultimul element, 8.

Exemplul 2 — felierea și operatorii. Pentru w = [2, 4, 6]:

w = [2, 4, 6]
print(w[0:2], w[1:], w[::-1], w + [8], w * 2, 4 in w, w.index(6))

Se afișează [2, 4] [4, 6] [6, 4, 2] [2, 4, 6, 8] [2, 4, 6, 2, 4, 6] True 2. Felierea w[0:2] conține indicii 0 și 1, nu și 2. Operatorul + construiește o listă nouă; w * 2 repetă elementele, nu le înmulțește numeric. Valoarea 6 se află pe poziția 2.

Exemplul 3 — copiere sau alias. Atribuirea b = a nu copiază lista, ci leagă un al doilea nume de aceeași listă. Pentru a obține o listă independentă se folosește a.copy(), a[:] sau list(a).

a = [1, 2]
b = a
b.append(3)
c = a.copy()
c.append(4)
print(a, b, c)

Se afișează [1, 2, 3] [1, 2, 3] [1, 2, 3, 4]. Adăugarea prin b s-a văzut și în a, pentru că sunt aceeași listă, pe când c este o copie și modificarea ei nu afectează a. Inserarea la început, insert(0, x), deplasează toate elementele, deci costă proporțional cu lungimea listei, iar append costă, în medie, un număr constant de operații.

Exemplul 4 — prelucrări uzuale. Pentru l = [4, 7, 4]: l.count(4) este 2; l.index(7) este 1; l.remove(4) elimină prima apariție și lasă [7, 4]; l.sort() ordonează pe loc, iar sorted(l) întoarce o listă nouă și lasă l neschimbată. Funcțiile sum(l), min(l) și max(l) lucrează direct pe listă. Eliminarea cu pop(i) deplasează elementele de după i, deci costă proporțional cu numărul lor.

Exemplul 5 — parcurgere cu indici. Se caută pozițiile valorii 12 în lista de mai jos și se afișează și maximul, împreună cu prima lui poziție:

v = [5, 12, 7, 12, 3]
poz = []
for i in range(len(v)):
    if v[i] == 12:
        poz.append(i)
print(poz, max(v), v.index(max(v)))

Indicii valizi sunt , deci range(len(v)) îi parcurge pe toți. Valoarea 12 apare pe pozițiile 1 și 3, maximul este 12, iar index întoarce doar prima apariție, adică 1. Se afișează [1, 3] 12 1. Accesul v[5] ar produce eroarea IndexError, pentru că ultimul indice valid este len(v) - 1.

Exemplul 6 — eliminare în timpul parcurgerii. Modificarea unei liste în timp ce este parcursă cu for dă rezultate surprinzătoare:

v = [1, 2, 2, 3]
for x in v:
    if x == 2:
        v.remove(x)
print(v)

Parcurgerea ține minte poziția curentă. La poziția 1 se găsește primul 2, care este eliminat, iar lista devine [1, 2, 3]. Elementele se deplasează spre stânga, deci al doilea 2 ajunge pe poziția 1, pe care parcurgerea a depășit-o deja. Bucla continuă cu poziția 2, adică valoarea 3, și se afișează [1, 2, 3]: un 2 a rămas în listă. Se parcurge o copie, for x in v[:].

Greșeli frecvente

  • Greșit: v[0:2] conține și elementul de pe poziția 2.
    Corect: felierea exclude indicele de sfârșit.
  • Greșit: v * 2 înmulțește numeric fiecare element.
    Corect: repetă lista de două ori.
  • Greșit: w = v creează o copie independentă.
    Corect: creează un al doilea nume pentru aceeași listă; copia se obține cu v.copy().
în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633 și 1653–1654; OMEC 4370/2026, anexa 8, p. 155–156; rocnee.eu
  • OMEC 4370/2026, anexa 8, Informatică IX intensiv, p. 155–156
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1632–1633; rocnee.eu
  • OMEC 6930/2025, anexa 66, Informatică IX CS militar, Monitorul Oficial nr. 4 bis/8.01.2026, pp. 2563–2578; cdn.edupedu.ro; centralizator oficial actualizat prin OMEC 3224/2026, legislatie.just.ro
  • OMEC 6930/2025, MO 4 bis/2026, Informatică CS, p. 1653–1654; rocnee.eu

Documente consultate

  • Programele școlare noi de informatică pentru clasele X–XII (OMEC 4370/2026, MO 591 bis/20.07.2026), CNCE, p. 155–156; rocnee.eu
  • Python Software Foundation, Python Tutorial, capitolul 5.1, docs.python.org/3/tutorial/datastructures.html

Desene: Redactare proprie (desen original), conform OMEC 4370/2026, Informatică IX intensiv; rocnee.eu

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.