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

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]

我正在学习Python,我不确定这个问题是否特定于语言以及如何在Python中实现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”]

上一篇:AttributeError: 'NoneType' object has no attribute 'append',列表list和dataframe使用ap


下一篇:python – Cassandra错误’NoneType’对象在导入csv时没有属性’datacenter’