Eu li vários tutoriais em python (Dive Into Python, por exemplo) e a referência de linguagem no Python.org - não vejo por que a linguagem precisa de tuplas.
As tuplas não têm métodos comparados a uma lista ou conjunto, e se eu devo converter uma tupla em um conjunto ou lista para poder classificá-las, qual é o sentido de usar uma tupla em primeiro lugar?
Imutabilidade?
Por que alguém se importa se uma variável vive em um lugar diferente na memória do que quando foi originalmente alocada? Todo esse negócio de imutabilidade em Python parece ter sido enfatizado demais.
No C / C ++, se eu alocar um ponteiro e apontar para alguma memória válida, não me importo onde o endereço está localizado, desde que não seja nulo antes de usá-lo.
Sempre que faço referência a essa variável, não preciso saber se o ponteiro ainda está apontando para o endereço original ou não. Eu apenas verifico se há nulo e o uso (ou não).
No Python, quando eu aloco uma string (ou tupla), atribua-a a x e modifique a string, por que me importo se é o objeto original? Desde que a variável aponte para meus dados, isso é tudo o que importa.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
ainda faz referência aos dados que eu quero, por que alguém precisa se preocupar se seu ID é igual ou diferente?