Python列表副本

Pra*_*abu 0 python list

我知道可以通过L [:]复制列表L. 但我面临一个问题,我不明白为什么.

src = [1,2,3]
dest = [[5,6,7]]
dest.append(src[:].append(4))
dest
[[5, 6, 7], None]
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,当我尝试复制并向其追加4时,src列表不会复制到dest(请参阅None).

dest.append(src[:])
dest
[[5, 6, 7], None, [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

如上面的代码片段所示,如果我添加简单地添加列表(到dest)而没有任何追加尝试,它就会被插入.任何的想法?

qia*_*iao 7

什么append试图做的是要追加定列表并返回数据None.

这就是为什么你会None在最后看到的dest.

以下代码应该做你想要的:

dest.append(src + [4])
Run Code Online (Sandbox Code Playgroud)