He leído varios tutoriales de Python (Sumérgete en Python, por ejemplo) y la referencia del lenguaje en Python.org: no veo por qué el lenguaje necesita tuplas.
Las tuplas no tienen métodos comparados con una lista o conjunto, y si debo convertir una tupla en un conjunto o lista para poder ordenarlos, ¿cuál es el punto de usar una tupla en primer lugar?
¿Inmutabilidad?
¿Por qué a alguien le importa si una variable vive en un lugar diferente en la memoria que cuando se asignó originalmente? Todo este negocio de inmutabilidad en Python parece estar demasiado enfatizado.
En C / C ++ si asigno un puntero y apunto a alguna memoria válida, no me importa dónde se encuentra la dirección, siempre que no sea nula antes de usarla.
Cada vez que hago referencia a esa variable, no necesito saber si el puntero sigue apuntando a la dirección original o no. Solo busco nulo y lo uso (o no).
En Python, cuando asigno una cadena (o tupla), la asigno a x, luego modifico la cadena, ¿por qué me importa si es el objeto original? Mientras la variable apunte a mis datos, eso es todo lo que importa.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
Todavía hace referencia a los datos que quiero, ¿por qué alguien debe preocuparse si su identificación es la misma o diferente?