我是新来的Python编程 为什么这个任务值K是给“无”在上面的例子中列表值Python列表概念
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]
,我的14个值添加到列表中,然后分配到k但k正在打印无请告诉我为什么打印无而不是附加列表?
感谢 mukthyar
我是新来的Python编程 为什么这个任务值K是给“无”在上面的例子中列表值Python列表概念
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]
,我的14个值添加到列表中,然后分配到k但k正在打印无请告诉我为什么打印无而不是附加列表?
感谢 mukthyar
append
改变当前目录,不返回任何东西。使用方法:(。.append()的.sort(),等)
k = l + [14]
或
k = l[:] # Copy list
k.append(14)
Python中的大多数方法,其发生变异的情况下不返回对象的一个副本。因此,l.append(X)实际上会像l.sort()那样返回“None”。
你可能想使用更多的东西一样:
l.append(14)
k = l[-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]
>>>
以这种方式使用交互式解释器可以帮助您避免打印每个值。
在Python默认返回类型是None
,所以如果你的函数没有返回任何值,那么你会从该函数得到None
。对象有不同的功能。一些功能在同一个对象上执行,而其他功能则返回修改后的副本。例如list.sort
将更改原始列表,而sorted
将返回新的已排序列表而不更改原始列表。所以append
正在处理对象,所以它会改变对象的值而不是返回新的修改后的副本。
希望这会使您的观点清楚地说明append
方法。
从简单的文字附加功能蟒蛇文件
list.append(x)
Add an item to the end of the list; equivalent to a[len(a):] = [x].
返回不过无
为什么你指望它打印后附名单?您是否阅读过文档? – 2012-03-14 07:12:07
rel:http://stackoverflow.com/questions/1452995/why-doesnt-a-python-dict-update-return-the-object – georg 2012-03-14 08:19:46