Я только начинаю манипуляции со строками и нашел этот вопрос. Я, наверное, пытался сделать что-то вроде OP, «обычный я». Предыдущие ответы не прояснили мое замешательство, но, немного подумав, я, наконец, "понял".
До тех пор , как a, b, c, dи eимеют такое же значение, они ссылаются на то же место. Память сохранена. Как только переменные начинают иметь разные значения, они начинают иметь разные ссылки. Мой опыт обучения исходил из этого кода:
import copy
a = 'hello'
b = str(a)
c = a[:]
d = a + ''
e = copy.copy(a)
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
e = a + 'something'
a = 'goodbye'
print map( id, [ a,b,c,d,e ] )
print a, b, c, d, e
Распечатанный результат:
[4538504992, 4538504992, 4538504992, 4538504992, 4538504992]
hello hello hello hello hello
[6113502048, 4538504992, 4538504992, 4538504992, 5570935808]
goodbye hello hello hello hello something