一尘不染

Python-为什么在Python中append()总是返回None?

python

list = [1, 2, 3]
print list.append(4)   ## WRONG, print does not work, append() returns None

## RIGHT:
list.append(4)
print list  ## [1, 2, 3, 4]

不确定此问题是否特定于该语言以及如何appendPython中实现。


阅读 968

收藏
2020-02-06

共1个答案

一尘不染

append是一种变异(破坏性)操作(它会在适当位置修改列表,而不是返回新列表)。进行无损等效的惯用方式append是

l = [1,2,3]
print l + [4] # [1,2,3,4]
print l # [1,2,3]

回答你的问题,我的猜测是,如果append返回新修改的列表,用户可能会认为它是非破坏性的,即他们可能会编写如下代码

m = l.append("a")
n = l.append("b")

并期望n成为[1,2,3,"b"]

2020-02-06