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"]
这篇关于为什么 append() 在 Python 中总是返回 None?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!