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]).