Rozdział 11 · Mnóstwo informacji!

Zmiana lista

Pierwszy prawdziwie zmienny typ danych: element listy można zastąpić bez tworzenia nowego obiektu.

Listę można zmienić „na miejscu”

To fundamentalna różnica między listą a łańcuch znaków. Przypiszemy nową wartość elementowi według indeksu:

izmenenie_elementa.py
numbers = [10, 20, 30]
numbers[1] = 999
print(numbers)   # [10, 999, 30]
100-3201-2302-1
Do: numbers[1] jeszcze 20
100-39991-2302-1
Nowość: numbers[1] = 999 - Ten sam obiekt
To ten sam obiekt, nie nowy lista
Po numbers[1] = 999 lista nie jest tworzony na nowo — zmienia się zawartość tego samego obiektu. To stanie się ważne w §11.9, kiedy jedna lista będzie miała od razu dwie zmienne-referencje.

Mutable vs immutable

Widzieliśmy już niezmienne typy — liczby i łańcuch znaków. Lista jest pierwszą rzeczywistą modyfikowalne (mutable) typ, który badamy:

TypCzy można zastąpić część znaczenia „na miejscu”
strŻadnych — name[0] = "P" powoduje TypeError, potrzebna jest nowa łańcuch znaków
tupleNie – krotki są również niezmienne (§11.13)
listTak — numbers[1] = 999 zmienia ten sam obiekt
Zmienność jest właściwością typu, a nie konkretną wartością
Nie ma "mutowalnych łańcuch znaków" ani "list niezmiennych" w zależności od zawartości – niezmienność jest całkowicie określona typem obiektu: wszystko list mutowalne, wszystkie tuple oraz str — nie.
Praktyka: Zmień pozycję listy na miejscu
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →