python列表中的无限赋值?

lul*_*yon 5 python list infinite

我来过这个问题.码:

>>> values = [0, 1, 2]
>>> values[1] = values
>>> values
[0, [...], 2]
Run Code Online (Sandbox Code Playgroud)

我期望的结果是:

[0, [0, 1, 2], 2]
Run Code Online (Sandbox Code Playgroud)

这是python列表的无限分配吗?幕后的是什么?

谢谢.

fil*_*mor 6

你有一个递归列表.values[1]是一个参考values.如果要存储values需要复制它的值,最简单的方法是

values[1] = values[:]
Run Code Online (Sandbox Code Playgroud)