首页 > 解决方案 > 嵌套追加操作出错?

问题描述

我有两个列表:a = [0], b = [[0,1]],我想先追加 2 a,然后追加ab. b应该如此[[0,1], [0,2]]。像这样的操作效果很好:

a.append(2)
b.append(a)

但是当我尝试将它们结合起来时:

b.append(a.append(2))

我得到了结果:

a = [0, 2], b = [[0, 1], None]

这里有什么问题?

标签: pythonlistnestedappend

解决方案


正如评论中回答的那样,a.append(2)仅附加2到 list a,但实际上并没有返回它。不修改原始列表但返回带有附加值的新列表的追加操作可以简单地使用+-operator 编写。

>>> a, b = [0], [[0, 1]]
>>> b.append(a + [2])  # The list that is returned to the append function is [0, 2]
>>> a
[0]
>>> b
[[0, 1], [0, 2]]

推荐阅读