Почему list (my_list) изменяет объект?

Я случайно наткнулся на это своеобразное поведение:

>>> a = []
>>> a[:] = ['potato', a]
>>> print a
['potato', [...]]
>>> print list(a)
['potato', ['potato', [...]]]

По какому механизму звонитlist(a) развернуть один уровень рекурсии в строковом представлении себя?

Ответы на вопрос(2)

Ваш ответ на вопрос