Я прочитал несколько руководств по python (например, «Dive Into Python») и справочник по языку на Python.org - я не понимаю, зачем этому языку нужны кортежи.
Кортежи не имеют методов по сравнению со списком или набором, и если я должен преобразовать кортеж в набор или список, чтобы иметь возможность их сортировать, какой смысл использовать кортеж в первую очередь?
Неизменяемость?
Почему кого-то волнует, находится ли переменная в другом месте в памяти, чем когда она была изначально выделена? Кажется, что этому вопросу неизменности в Python уделяется чрезмерное внимание.
В C / C ++, если я выделяю указатель и указываю на некоторую допустимую память, мне все равно, где находится адрес, если он не равен нулю, прежде чем я его использую.
Всякий раз, когда я ссылаюсь на эту переменную, мне не нужно знать, указывает ли указатель на исходный адрес или нет. Я просто проверяю значение null и использую его (или нет).
В Python, когда я выделяю строку (или кортеж), назначаю ее x, а затем изменяю строку, почему меня волнует, является ли это исходным объектом? Пока переменная указывает на мои данные, это все, что имеет значение.
>>> x='hello'
>>> id(x)
1234567
>>> x='good bye'
>>> id(x)
5432167
x
по-прежнему ссылается на данные, которые я хочу, почему кому-то нужно заботиться о том, такой же или другой идентификатор?