我有两个列表: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]
这里怎么了?
[我认为评论已经回答了您的问题:append()
方法修改了列表的位置,而不是创建一个新列表,其返回类型为None
。如果仍要单行执行操作,则可以使用assignment expression:
a, b = [0], [[0, 1]]
b.append(a := a + [2])
print(a, b)
# [0, 2] [[0, 1], [0, 2]]
如果您想结合使用这些功能,则可以发挥自己的作用,
def append(x, value):
x.append(value)
return x
执行操作并返回“附加的”容器。
append(b, append(a,1))