我是python编程的新手 为什么这个赋值给k的是'无'值
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]
在上面的示例List中,我将14值附加到列表然后分配给k但是k正在打印无请告诉我它打印的原因是否而不是附加列表?
由于 mukthyar
答案 0 :(得分:7)
append
更改当前列表并且不返回任何内容。使用:
k = l + [14]
或
k = l[:] # Copy list
k.append(14)
答案 1 :(得分:4)
Python中用于改变其实例(.append(),. sort()等)的大多数方法都不返回该对象的副本。因此,l.append(X)确实返回“None”,就像l.sort()一样。
你可能想要使用更像的东西:
l.append(14)
k = l[-1]
答案 2 :(得分:1)
您所看到的是预期的 - list.append方法不会返回修改后的列表。如果你看一下Python教程的relevant section,你会发现返回有用值的方法都是这样记录的。
在交互式解释器中工作,你可以告诉表达式由于缺少输出而产生无:
>>> l = [1, 2, 3]
>>> l.append(14)
>>>
如果(理论上)list.append返回了列表,您会看到以下内容:
>>> l = [1, 2, 3]
>>> l.append(14)
[1, 2, 3, 14]
>>>
使用交互式解释器可以避免打印每个值。
答案 3 :(得分:1)
在python中,默认返回类型为None
,因此如果您的函数没有返回任何值,那么您将从该函数获得None
。对象有不同的功能。某些函数在同一对象上执行,而其他函数则返回修改后的副本。例如,list.sort
将更改原始列表,而sorted
将返回新的排序列表而不更改原始列表。因此append
正在处理对象,因此它将更改对象值,而不是返回新的修改后的副本。
希望这会让您清楚了解append
方法。
答案 4 :(得分:1)
来自python文档
list.append(x)
Add an item to the end of the list; equivalent to a[len(a):] = [x].
在简单的单词append函数中只返回无