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

8.1. Crearea, indexarea și accesarea listelor

Indici pozitivi și negativi, slicing și modificarea elementelor

CREARE
→
INDEXARE
→
ACCESARE
→
MODIFICARE
01
OBIECTIVE

La finalul lecției vei putea...

01

Definirea și crearea unei liste în Python fol

Definirea și crearea unei liste în Python folosind parantezele drepte.

02

Identificarea pozițiilor elementelor și utili

Identificarea pozițiilor elementelor și utilizarea indicilor pozitivi și negativi.

03

Accesarea unui element și a unei secvențe de

Accesarea unui element și a unei secvențe de elemente prin slicing.

04

Modificarea unui element existent și explicar

Modificarea unui element existent și explicarea efectului asupra listei.

05

Utilizarea listelor în probleme simple de mem

Utilizarea listelor în probleme simple de memorare și prelucrare.

✓
Checkpoint

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

02
EXPLICAȚIE

Crearea, indexarea și accesarea listelor

În lecțiile anterioare am analizat modelul conceptual liniar și am folosit secvențe de valori. În Python putem memora mai multe valori într-o singură structură de date: lista. În această lecție trecem de la modelul conceptual al listei la obiectul concret din Python, de tip list.

Ce este o listă?

O listă este o colecție ordonată de valori. Elementele sunt păstrate într-o anumită ordine și pot fi accesate prin poziția lor. În Python, lista se scrie între paranteze drepte, iar elementele sunt separate prin virgulă.

note = [8, 10, 7, 9]

Lista are patru elemente. Primul element este 8, al doilea este 10, iar ultimul este 9.

Indicii

În Python, numerotarea indicilor începe de la 0. Pentru lista note, indicii sunt 0, 1, 2, 3. Astfel, note[0] este 8, iar note[3] este 9.

Python permite și indici negativi. note[-1] este ultimul element, note[-2] penultimul element etc. Această formă este utilă atunci când ne interesează elementele de la sfârșitul listei.

Slicing

Prin slicing putem selecta o secvență. note[1:3] conține elementele de la indicele 1 până înainte de indicele 3, deci [10, 7]. Capătul din dreapta nu este inclus.

Modificarea unui element

Listele pot fi modificate. Dacă note[2] = 10, elementul de la indicele 2 este înlocuit, iar lista devine [8, 10, 10, 9].

03
EXEMPLU INTUITIV

Înțelegem conceptul înainte de problemă

Testează un indice

L=[8,10,7,9]

Testează slicing

—

04
PYTHON

Aplicarea conceptelor în Python

Crearea unei liste

numere = [12, 7, 4, 9]
valori = []

valori este o listă goală.

Accesarea și slicing

print(numere[0])
print(numere[-1])
print(numere[1:3])

Modificarea

numere[2] = 10
print(numere)

Numărul de elemente poate fi obținut cu len(numere). Parcurgerea sistematică va fi tratată în lecția 8.5; aici folosim doar accesul direct la elemente.

05
ALGORITM / PSEUDOCOD

Descrierea algoritmului înaintea implementării

Pentru accesarea elementului de pe poziția p, dacă poziția este exprimată prin indice, elementul cerut este L[p].

ALGORITM Accesare
    citește/consideră lista L
    accesează elementul L[p]
    afișează L[p]
SFÂRȘIT ALGORITM

Pentru memorarea a n valori într-o listă, putem construi o listă goală și adăuga succesiv valorile; operația de adăugare este explicată detaliat în lecția 8.4.

06
ATENȚIE!

Erori și confuzii frecvente

  • Primul indice este 0, nu 1.
  • Pentru o listă cu n elemente, ultimul indice pozitiv este n-1.
  • Accesarea unui indice care nu există produce IndexError.
  • În slicing, limita din dreapta nu este inclusă.
  • Instrucțiunea L[i] = valoare schimbă elementul din listă; nu creează o listă nouă.
07
EXEMPLU REZOLVAT

Accesarea și modificarea unor elemente

Enunț

Se consideră lista [12, 5, 18, 7, 10]. Afișați primul element, ultimul element, elementele dintre indicii 1 și 3 și apoi înlocuiți 18 cu 20.

Analiză

Lista este deja memorată. Folosim acces direct pentru primul și ultimul element, slicing pentru secvența cerută și atribuirea pentru modificare.

Algoritm / pseudocod

Pentru accesarea elementului de pe poziția p, dacă poziția este exprimată prin indice, elementul cerut este L[p].

ALGORITM Accesare
    citește/consideră lista L
    accesează elementul L[p]
    afișează L[p]
SFÂRȘIT ALGORITM

Pentru memorarea a n valori într-o listă, putem construi o listă goală și adăuga succesiv valorile; operația de adăugare este explicată detaliat în lecția 8.4.

Python

L = [12, 5, 18, 7, 10]
print(L[0])
print(L[-1])
print(L[1:4])
L[2] = 20
print(L)

Urmărirea variabilelor

L[0] = 12; L[-1] = 10; L[1:4] = [5, 18, 7]. După L[2] = 20, lista devine [12, 5, 20, 7, 10].

Testare

TestDateRezultat așteptat
Caz normal[12, 5, 18, 7, 10]12; 10; [5,18,7]; apoi [12,5,20,7,10]
Caz-limită[5]L[0] și L[-1] indică același element
Caz particularacces L[5]IndexError

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. Scrie lista [4, 8, 15, 16, 23, 42] și afișează primul și ultimul element.
  2. Pentru L=[10,20,30,40,50], determină valorile L[2], L[-1] și L[-3].
  3. Pentru L=[3,6,9,12,15], afișează L[1:4].
  4. În lista [7,14,21,28], înlocuiește 21 cu 25.
  5. Construiește o listă cu 5 temperaturi și afișează a treia valoare.
09
EXERCIȚII DE APROFUNDARE

Generalizare și cazuri-limită

  1. Pentru L=[2,4,6,8,10,12], determină L[0:3], L[2:6] și L[-4:-1].
  2. Explică de ce L[6] este invalid pentru lista [1,2,3,4,5,6].
  3. Scrie un program care citește n și apoi n valori, le memorează într-o listă și afișează primul și ultimul element. Consideră n>0.
  4. Modifică programul anterior astfel încât să înlocuiască ultimul element cu dublul său.
10
VERIFICARE

Verifică dacă ai înțeles

Întrebări conceptuale și itemi algoritmici

1. Ce indice are primul element al unei liste?

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

2. Ce exprimă L[-1]?

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

3. Pentru L=[5,7,9,11], ce rezultat are L[1:3]?

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

4. Ce se întâmplă la executarea L[4] dacă lista are doar patru elemente?

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

5. Scrie instrucțiunea care înlocuiește elementul de indice 2 cu valoarea 100.

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

1. Care este indicele primului element?

2. Ce exprimă L[-1]?

3. Ce conține L[1:3]?

4. Ce se întâmplă la un indice inexistent?

5. Cum modifici elementul de indice 2?

6. Ce face slicing-ul?

11
MINI-PROIECT

Aplicație integratoare

MISIUNE

Catalogul unui elev

Catalogul unui elev: memorează într-o listă cinci note, afișează prima și ultima notă, o secvență de note aleasă prin slicing și modifică o notă greșită. Documentează indicii utilizați și testează programul cu cel puțin trei seturi de date.

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.