Salt la conținutul principal
Modulul 3 · Lecția 1 din 49/36 în curs~12 min
Lecții din modul (1/4)

Liste

O listă este o secvență de elemente ordonată și mutabilă. Este cea mai folosită structură de date în Python: creați una cu [] și o modificați cu un set de metode demne de memorat.

Crearea unei liste

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # tipi diversi: legale ma raro

Acces prin index și felie

Indecșii încep de la 0. Indicii negativi se numără de la dreapta:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (ultimo)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   reverse

O felie nu ridică niciodată IndexError: dacă este în afara intervalului, returnează un sub-listă goală. Accesul direct, cum ar fi parole[10], în schimb, ridică un excepție.

Modificarea unei liste

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    aggiunge in fondo
nums.insert(0, 0)      # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   concatena
nums.pop()             # 6   estrae ultimo
nums.pop(0)            # 0   estrae primo (più lento: O(n))
nums.remove(3)         # rimuove la PRIMA occorrenza di 3
nums[1] = 99           # sostituisce per indice

Triere

Două forme - este important să le deosebești:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # MUTA nums in place, ritorna None
ordinati = sorted(nums)  # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # ordinamento per chiave

Lungime, apartenență, iterație

Python
len(nums)              # quanti elementi
3 in nums              # True/False
for n in nums:
    print(n)

Copierea unei liste

a = b nu se copiază — doar creează un al doilea nume pentru aceeași listă. Pentru a copia de fapt:

Python
copia = lista[:]            # slice completo
copia = list(lista)         # costruttore esplicito
copia = lista.copy()        # metodo

(Acestea sunt toate copii superficiale - elementele imbricate rămân partajate.)

Copierea listelor: ai grijă la referințe

În Python, când scrieți list_b = list_a, nu creați o copie: creați doar o a doua referință. Modificarea list_b va modifica și list_a. Pentru a crea o copie adevărată independentă, trebuie să scrieți list_b = list_a.copy() sau să utilizați tăierea completă: list_b = list_a[:].

Încearcă

Exercițiu#python.m3.l1.e1
Încercări: 0Se încarcă…

Având în vedere lista `nums = [5, 2, 8, 1, 9, 3]`, construiți `first_three_sorted` cu primele trei numere de numere sortate în ordine crescătoare. Nu modificați numerele.

Se încarcă editorul...
Afișează indiciu

numere[:3] sunt primele trei, apoi sortate(...).

Soluție disponibilă după 3 încercări

Exercițiu de revizuire

Exercițiu#python.m3.l1.e2
Încercări: 0Se încarcă…

Pornind de la `words = ['ciao']`, adăugați 'mondo' la sfârșit, apoi introduceți '!' la început. Evaluează „cuvinte”.

Se încarcă editorul...
Afișează indiciu

anexează la coadă, inserează (0, ...) la cap.

Soluție disponibilă după 3 încercări

Provocare suplimentară

Exercițiu#python.m3.l1.e3
Încercări: 0Se încarcă…

Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.

Se încarcă editorul...
Afișează indiciu

Tăierea cu un pas negativ este [::-1]. Atribuiți-o la reversed_items.

Soluție disponibilă după 3 încercări