t = (1, [2, 3])
t[1][0] = 99
print(t)
(1, [99, 3])
.
t
неизменяем, но его второй элемент - список - изменяем. Поэтому изменение списка внутри кортежа допустимо.
Вопрос: Что выведет следующий код и почему?
t = (1, [2, 3])
t[1][0] = 99
print(t)
Ответ:
Код выведет:
(1, [99, 3])
Объяснение:
Несмотря на то, что кортежи (tuple
) являются неизменяемыми, изменяемость относится к самим элементам, которые хранятся в кортеже, а не к возможности добавления или удаления элементов из кортежа.
t
- это кортеж, содержащий два элемента: целое число 1
и список [2, 3]
.t[1][0] = 99
изменяет первый элемент (с индексом 0) списка, находящегося на втором месте (с индексом 1) в кортеже t
. Мы не изменяем сам кортеж, а изменяем содержимое списка, на который ссылается элемент кортежа.t[1][0] = 99
, список [2, 3]
становится [99, 3]
. Кортеж t
продолжает содержать целое число 1
и измененный список [99, 3]
.Таким образом, в результате будет выведен кортеж (1, [99, 3])
.