Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE · CAPITOLUL 8

8.4. Inserări, ștergeri și copiere – append, insert, pop, remove, clear și copy

Modificarea dinamică a listelor și diferența dintre referință și copie

ADAUGĂ
→
INSEREAZĂ
→
ȘTERGE
→
COPIAZĂ
01
OBIECTIVE

La finalul lecției vei putea...

01

Utilizarea append() și insert() pentru adăuga

Utilizarea append() și insert() pentru adăugare.

02

Utilizarea pop() și remove() pentru ștergere.

Utilizarea pop() și remove() pentru ștergere.

03

Golirea unei liste cu clear().

Golirea unei liste cu clear().

04

Crearea unei copii cu copy().

Crearea unei copii cu copy().

05

Explicarea diferenței dintre atribuirea direc

Explicarea diferenței dintre atribuirea directă și copierea listei.

✓
Checkpoint

Poți explica, în propriile cuvinte, ideea centrală a lecției?

02
EXPLICAȚIE

Inserări, ștergeri și copiere – append, insert, pop, remove, clear și copy

Până acum am lucrat în principal cu liste deja construite. În aplicații reale, conținutul unei liste se schimbă: apar elemente noi, unele trebuie eliminate, iar uneori avem nevoie de o copie independentă. Python oferă metode specializate pentru aceste operații.

Adăugare

append(x) adaugă x la sfârșitul listei. insert(i,x) inserează x înaintea elementului aflat la indicele i.

Ștergere

pop() elimină și returnează ultimul element. pop(i) elimină și returnează elementul de la indicele i. remove(x) elimină prima apariție a valorii x.

Dacă x nu există, remove(x) produce ValueError. clear() elimină toate elementele.

Copiere

copy() creează o copie a listei. Atribuirea B=A nu creează o listă independentă: A și B se referă la același obiect listă.

03
EXEMPLU INTUITIV

Înțelegem conceptul înainte de problemă

O listă de sarcini funcționează dinamic: append adaugă o sarcină la final, insert o introduce într-o poziție, pop elimină după poziție, remove elimină după valoare, clear șterge toate sarcinile, iar copy permite păstrarea unei versiuni separate.

Simulare rapidă

L=[„tema”, „proiect”, „lectura”]

04
PYTHON

Aplicarea conceptelor în Python

L = [10, 20]
L.append(30)
print(L)

L.insert(1, 15)
print(L)

x = L.pop()
print(x)
print(L)

L.remove(15)
print(L)

L.clear()
print(L)

A = [1, 2, 3]
B = A.copy()
B[0] = 100
print(A)
print(B)

Pentru siguranță, remove poate fi precedat de verificarea x in L.

05
ALGORITM / PSEUDOCOD

Descrierea algoritmului înaintea implementării

ALGORITM Adăugare
    adaugă x la sfârșitul listei
SFÂRȘIT ALGORITM

ALGORITM Inserare
    inserează x înaintea poziției i
SFÂRȘIT ALGORITM

ALGORITM Ștergere
    elimină elementul de la indicele i
    sau, dacă x există, elimină prima apariție a lui x
SFÂRȘIT ALGORITM

ALGORITM Copiere
    creează o listă nouă care conține aceleași elemente inițiale
SFÂRȘIT ALGORITM
06
ATENȚIE!

Erori și confuzii frecvente

  • append(x) adaugă un singur element x; dacă x este o listă, acea listă devine un element al listei inițiale.
  • insert(i,x) modifică indicii elementelor aflate după poziția i.
  • pop(i) lucrează cu poziția, remove(x) cu valoarea.
  • remove(x) pentru o valoare absentă produce ValueError.
  • pop() pentru o listă goală produce IndexError.
  • A=B nu este același lucru cu B=A.copy().
07
EXEMPLU REZOLVAT

Gestionarea unei liste de sarcini

Enunț

O listă de sarcini este ["tema", "proiect", "lectura"]. Adăugați "test" la final, introduceți "exerciții" pe poziția 1, eliminați "proiect", eliminați ultima sarcină și creați o copie independentă.

Analiză

Operațiile sunt executate în ordinea cerută. Pentru ștergerea ultimei sarcini folosim pop(), iar pentru „proiect” remove().

Algoritm / pseudocod

ALGORITM Adăugare
    adaugă x la sfârșitul listei
SFÂRȘIT ALGORITM

ALGORITM Inserare
    inserează x înaintea poziției i
SFÂRȘIT ALGORITM

ALGORITM Ștergere
    elimină elementul de la indicele i
    sau, dacă x există, elimină prima apariție a lui x
SFÂRȘIT ALGORITM

ALGORITM Copiere
    creează o listă nouă care conține aceleași elemente inițiale
SFÂRȘIT ALGORITM

Python

L = ["tema", "proiect", "lectura"]
L.append("test")
L.insert(1, "exerciții")
L.remove("proiect")
ultima = L.pop()
copie = L.copy()

print(L)
print("Eliminată de la final:", ultima)
print("Copie:", copie)

Urmărirea variabilelor

După append: [tema, proiect, lectura, test]. După insert: [tema, exerciții, proiect, lectura, test]. După remove: [tema, exerciții, lectura, test]. pop elimină test, iar lista rămâne [tema, exerciții, lectura]. Copia are același conținut, dar este o listă independentă.

Testare

TestDateRezultat așteptat
După appendL=[tema,proiect,lectura][tema,proiect,lectura,test]
După removeștergem proiect[tema,exerciții,lectura,test]
Copie independentăB=L.copy(); B[0]=XL nu se modifică

Justificarea soluției

Fiecare operație din program corespunde unei cerințe. Rezultatul poate fi controlat pornind de la lista inițială și urmărind efectul fiecărei instrucțiuni. Testele verifică atât comportamentul obișnuit, cât și situațiile relevante.

08
EXERCIȚII DE BAZĂ

Aplicare progresivă

  1. Adaugă 6 la finalul listei [1,2,3].
  2. Inserează 5 la indicele 1 în [2,4,6].
  3. Folosește pop() pentru a elimina ultimul element din [10,20,30].
  4. Elimină prima apariție a valorii 4 din [4,7,4,9].
  5. Golește lista [1,2,3] cu clear().
  6. Creează o copie independentă a [5,6,7] și modifică primul element al copiei.
09
EXERCIȚII DE APROFUNDARE

Generalizare și cazuri-limită

  1. Explică diferența dintre pop(2) și remove(2).
  2. Arată printr-un program diferența dintre B=A și B=A.copy().
  3. Scrie un program pentru o listă de cumpărături care adaugă, inserează și elimină produse.
  4. Tratează cazul în care valoarea ce trebuie eliminată nu există.
  5. Explică de ce folosirea repetată a insert poate schimba pozițiile elementelor deja existente.
10
VERIFICARE

Verifică dacă ai înțeles

Întrebări conceptuale și itemi algoritmici

1. Ce face append?

Răspunde în caiet sau în programul tău.

2. Ce diferență există între insert și append?

Răspunde în caiet sau în programul tău.

3. Ce returnează pop()?

Răspunde în caiet sau în programul tău.

4. Ce elimină remove?

Răspunde în caiet sau în programul tău.

5. Ce efect are clear?

Răspunde în caiet sau în programul tău.

6. De ce este necesar copy pentru o copie independentă?

Răspunde în caiet sau în programul tău.

1. Ce face append(x)?

2. Ce face insert(i,x)?

3. Ce returnează pop()?

4. Ce elimină remove(x)?

5. Ce face clear()?

6. De ce folosim copy()?

11
MINI-PROIECT

Aplicație integratoare

MISIUNE

To-do list

To-do list: creează o listă de sarcini și oferă operații de adăugare, inserare, ștergere după valoare, eliminare a ultimei sarcini, golire și realizare a unei copii. Pentru fiecare operație, afișează lista înainte și după.

Cerințe

Concepte ale lecției01
Python corect02
Testare03
Justificarea soluției04
Documentare05

Ai terminat lecția?

Recitește obiectivele, verifică exercițiile și testează mini-proiectul.