【发布时间】:2017-01-07 20:07:51
【问题描述】:
lis = [1,2,3]
print(lis.append(4))
# Returns None
#############
lis = [1,2,3]
lis.append(4)
print(lis)
# Returns [1,2,3,4]
我找到了这段代码here,但我不明白为什么.append() 返回None。回答的人说是因为
.append()更改列表并返回None。
但这对我来说没有意义。我解释上面示例代码块的方式很简单,您必须先附加到列表中才能对其进行 rpint,但这与我在评估语句中的语句时对评估顺序的理解相悖。
【问题讨论】:
-
有什么不明白的?您引用的链接问题完美地解释了它。 append 语句被求值,并返回 None。同时,列表发生了变化。
-
append不是一个返回任何东西的数学函数。它是一组改变对象本身的指令。您期望的结果是什么? -
您认为评估顺序的哪一部分比较麻烦?
print(lis.append(4))首先将lis.append(4)评估为None,然后将其打印出来。 -
哦,好的。抱歉,Python 新手!
-
如果 5 个人给了我相同的答案,这个问题真的是“不清楚”吗?
标签: python list python-3.x append