小能豆

为什么 list(my_list) 会修改对象?

py

我偶然发现了这种奇怪的行为:

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

调用通过什么机制list(a)在其自身的字符串表示中展开一个递归级别?


阅读 8

收藏
2024-10-28

共1个答案

小能豆

list()进行浅拷贝。外部列表与其包含的列表不再是同一个对象。它会按预期打印出来。

2024-10-28