Python列表概念

时间:2012-03-14 06:35:38

标签: python python-3.x

我是python编程的新手 为什么这个赋值给k的是'无'值

> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]

在上面的示例List中,我将14值附加到列表然后分配给k但是k正在打印无请告诉我它打印的原因是否而不是附加列表?

由于 mukthyar

5 个答案:

答案 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函数中只返回

suggested reading