【发布时间】:2013-11-13 01:50:15
【问题描述】:
我偶然发生了这种奇怪的行为:
>>> a = []
>>> a[:] = ['potato', a]
>>> print a
['potato', [...]]
>>> print list(a)
['potato', ['potato', [...]]]
调用list(a)通过什么机制在其自身的字符串表示中展开一层递归?
【问题讨论】:
标签: python string list recursion
我偶然发生了这种奇怪的行为:
>>> a = []
>>> a[:] = ['potato', a]
>>> print a
['potato', [...]]
>>> print list(a)
['potato', ['potato', [...]]]
调用list(a)通过什么机制在其自身的字符串表示中展开一层递归?
【问题讨论】:
标签: python string list recursion
... 仅在项目包含自身时显示——即,相同的对象。 list(a) 复制列表,因此内部 a 不是同一个对象。它仅在到达“a inside a”时才显示...,而不是“a inside list(a)”。
【讨论】:
list() 进行浅拷贝。外部列表不再是与其包含的列表相同的对象。它会按照您的预期打印。
【讨论】: