Одним из преимуществ неизменности является эффективность использования памяти. Например
>>> a = "abcd"
>>> b = "abcd"
>>> a is b
True
>>> a = 1
>>> b = 1
>>> a is b
True
Однако для кортежей кажется, что python никогда не пытается делать то же самое. Интересно, почему?
>>> a = (1, 2)
>>> b = (1, 2)
>>> a is b
False
==
pyfiddle.io/fiddle/26c865d8-770e-4e80-9509 -4f386e6c7893 - person raul.vila   schedule 15.04.2018x = ([1], 2)
иy = ([1], 2)
одним и тем же кортежем? А что послеy[0].append('a')
? Хуже того, изменяемая часть кортежа может быть вложена сколь угодно глубоко; сколько времени вы хотите потратить на определение того, является ли кортеж полностью неизменным, чтобы его можно было интернировать? - person chepner   schedule 15.04.2018