为什么在Python中append()总是返回None? [英] Why does append() always return None in Python?

查看:509
本文介绍了为什么在Python中append()总是返回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,但不确定此问题是否专门针对该语言以及append如何在Python中实现.

I'm learning Python and I'm not sure if this problem is specific to the language and how append is implemented in Python.

推荐答案

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

append is a mutating (destructive) operation (it modifies the list in place instead of of returning a new list). The idiomatic way to do the non-destructive equivalent of append would be

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

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

to answer your question, my guess is that if append returned the newly modified list, users might think that it was non-destructive, ie they might write code like

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

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

这篇关于为什么在Python中append()总是返回None?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆