a = [1, 2, 3]
b = a[:]
b[0] = 0
print(a)
[1, 2, 3]
. b = a[:]
создает поверхностную копию списка a
. Изменение b
не влияет на a
.
Вопрос: Что выведет следующий код?
a = [1, 2, 3]
b = a[:]
b[0] = 0
print(a)
Ответ:
Программа выведет: [1, 2, 3]
.
Объяснение:
a = [1, 2, 3]
: Создается список a
и присваивается ему значение [1, 2, 3]
.b = a[:]
: Создается копия списка a
с помощью среза ([:]
) и присваивается переменной b
. Это важно, так как создается *новый* объект списка в памяти. Если бы мы написали b = a
, то b
просто указывала бы на тот же список, что и a
.b[0] = 0
: Изменяется первый элемент (с индексом 0) списка b
на 0.print(a)
: Выводится список a
. Поскольку b
является независимой копией a
, изменение b
не влияет на a
. Поэтому a
сохраняет свое первоначальное значение.Таким образом, изменение b[0]
не влияет на a
, и при печати a
выводится исходный список [1, 2, 3]
.