Глава 11 · Очень много информации!

Изменяем список

Первый по-настоящему изменяемый тип данных: элемент списка можно заменить, не создавая новый объект.

Список можно изменить «на месте»

Это фундаментальное отличие списка от строки. Присвоим новое значение элементу по индексу:

izmenenie_elementa.py
numbers = [10, 20, 30]
numbers[1] = 999
print(numbers)   # [10, 999, 30]
100-3201-2302-1
До: numbers[1] ещё 20
100-39991-2302-1
После: numbers[1] = 999 — тот же объект
Это тот же самый объект, а не новый список
После numbers[1] = 999 список не пересоздаётся — изменяется содержимое того же объекта. Это станет важно в §11.9, когда у одного списка будет две ссылки-переменные сразу.

Mutable vs immutable

Мы уже встречали неизменяемые типы — числа и строки. Список — первый по-настоящему изменяемый (mutable) тип, который мы изучаем:

ТипМожно ли заменить часть значения «на месте»?
strНет — name[0] = "P" вызывает TypeError, нужна новая строка
tupleНет — кортежи тоже неизменяемы (§11.13)
listДа — numbers[1] = 999 меняет тот же объект
Изменяемость — свойство типа, а не конкретного значения
Не бывает «изменяемых строк» и «неизменяемых списков» в зависимости от содержимого — изменяемость целиком определяется типом объекта: все list изменяемы, все tuple и str — нет.
Практика: изменяем элемент списка на месте
Интерактивный ноутбук прямо в браузере — Python 3.14 через Pyodide, без установки
Открыть практику →