vanvanov
Почему процедура quote работает, а закомментированная процедура - не работает?
Потому что имя symbol сначала привязано к одному объекту, а потом в цикле оно просто перепривязывается к другому объекту. С первым объектом ничего не происходит, от него отвязывается единственное имя и он просто остаётся в списке, каким и был до привязывания имени к нему.
Вот пример
>>> n = 1
>>> n
1
>>> n = 2
>>> n
2
>>>
Имя n привязали к объекту число со значением 1. Затем имя n привязали к другому объекту число со значением 2. Как только имя n привязали к другому объекту, первый объект, потеряв своё имя, высвободился из памяти (уничтожился).
К одному и тому же объекту может быть привязано много имён
>>> a = b = c = 1
>>> a
1
>>> b
1
>>> c
1
>>>
Как только объект теряет все свои имена, он удаляется из памяти. Там не только имена влияют на это, есть ещё и безымянные ссылки. Если объект находится в списке, который имеет имя и висит в памяти, то объект не будет удалён, потому что список на него ссылается (имеет невидимую ссылку). Но как только список потеряет имя и он при этом нигде не будет содержаться сам (в списке или кортеже), все объекты в этом списке удалятся и сам список тоже.
Если бы ты читал книжки, то ты бы оттуда всё это узнал, потому что там это пишут. Не нужно догадываться самому, питон не простой язык, он очень развитый и там много всяких таких фишек. Просто не хочется тебе книжки сюда переписывать, там это написано лучше, полнее и время тратить не надо, чтобы это всё писать.