Python列表复制

2024-04-24 23:36:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

src = [1,2,3]
dest = [[5,6,7]]
dest.append(src[:].append(4))
dest
[[5, 6, 7], None]

在上面的示例中,当我试图复制src列表并将其附加到dest时,src列表没有被复制到dest(参见None)。在

^{pr2}$

如上面的代码片段所示,如果我add只是简单地添加列表(到dest),而不进行任何追加尝试,那么它就会被插入。 有什么想法吗?在


Tags: 代码srcnoneadd示例列表destappend
2条回答

就地修改其参数/对象的函数/方法应返回None。这是Python中常见的约定。例如,.append().extend()random.shuffle();一个值得注意的例外是.pop()。在

作为@qiao already said,您可以使用:

dest.append(src + [4])

或者

^{pr2}$

src + [4]创建一个新列表:[1,2,3,4],因此您不需要显式地src复制。在

append试图在给定列表上追加数据并返回None。在

这就是为什么你会在dest的末尾看到{}。在

以下代码应按您的要求执行:

dest.append(src + [4])

相关问题 更多 >