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]
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:
| Typ | Czy można zastąpić część znaczenia „na miejscu” |
|---|---|
str | Żadnych — name[0] = "P" powoduje TypeError, potrzebna jest nowa łańcuch znaków |
tuple | Nie – krotki są również niezmienne (§11.13) |
list | Tak — 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