2013-11-13 3 views
3

Мы не можем обновлять или изменять кортеж в python.
Я пишу код, который обновляет кортеж.Обновление значений кортежей в python

Почему это не дает никаких ошибок? Вот мой код

tuple1=(1,'hello',5,7,8,) 
tuple1=tuple1[1:3]*2 
print tuple1 
print tupele1[3] 

Почему это показывает выход без каких-либо ошибок?

выход :('привет', 5 'привет', 5)

+0

Что такое * желаемый выход? –

ответ

4

Вы не обновляя кортеж, вы создаете новый кортеж с различными значениями ,

0

* нет, что вы думаете. Он умножает фрагмент, а не его содержимое.

tuple1[1:3] == ['hello', 5] 
tuple1[1:3] * 2 == ['hello', 5, 'hello', 5] 
3

Вы не мутирует кортежа, вы перекомпоновки имени связанного с ней. Это не ограничивается Python.

>>> (1, 2, 3)[1] = 4 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object does not support item assignment 
>>> a = (1, 2, 3) 
>>> a = 4 
2

Мы не можем обновлять значения в кортеже, но мы можем переназначить переменную, ссылающуюся на кортеж.

Смежные вопросы