嵌套附加操作出错?

问题描述 投票:0回答:2

我有两个列表:a = [0], b = [[0,1]],我想先将2附加到a,然后再将a附加到b。因此,b应该为[[0,1], [0,2]]。这样的操作效果很好:

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

但是当我尝试将它们组合时:

b.append(a.append(2))

我得到了结果:

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

这里怎么了?

python list nested append
2个回答
0
投票

[我认为评论已经回答了您的问题:append()方法修改了列表的位置,而不是创建一个新列表,其返回类型为None。如果仍要单行执行操作,则可以使用assignment expression

a, b = [0], [[0, 1]]
b.append(a := a + [2])
print(a, b)
# [0, 2] [[0, 1], [0, 2]]

0
投票

如果您想结合使用这些功能,则可以发挥自己的作用,

def append(x, value):
  x.append(value)
  return x

执行操作并返回“附加的”容器。

append(b, append(a,1))
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.