猿问

为什么追加在此代码中不返回任何内容?

为什么追加在此代码中不返回任何内容?

list = [1, 2, 3]print list.append(4)   ## NO, does not work, append() returns None## Correct pattern:list.append(4)print list  ## [1, 2, 3, 4]

我正在学习Python,我不确定这个问题是否是特定于该语言的,以及如何在Python中实现追加。


达令说
浏览 465回答 4
4回答

白衣非少年

append是一个变异(破坏性)操作(它在适当的位置修改列表,而不是返回新列表)。做非破坏性等效物的惯用方法append会是l = [1,2,3]print l + [4] # [1,2,3,4]print l # [1,2,3]回答你的问题,我猜如果append返回新修改的列表,用户可能会认为它是非破坏性的(他们可能会编写类似的代码)。m = l.append("a")n = l.append("b")期待n成为[1,2,3,"b"]

神不在的星期二

在Python中,变异序列返回的方法是一种惯例。None.考虑:>>> a_list = [3, 2, 1]>>> print a_list.sort()None>>> a_list[1, 2, 3]>>> a_dict = {}>>> print a_dict.__setitem__('a', 1) None>>> a_dict{'a': 1}>>> a_set = set()>>> print a_set.add(1)None>>> a_set set([1])从Python3.3开始,现在更多明确记录:有些集合类是可变的。添加、减除或重新排列其成员位置的方法,而不返回特定项的方法,永远不会返回集合实例本身,但是None.设计与历史常见问题给出推理这项设计决定的背后(关于清单):为什么不list.sort()返回排序列表?在性能重要的情况下,只为排序而复制列表将是浪费的。因此,list.sort()对列表进行排序。为了提醒您这个事实,它不返回排序列表。这样,当您需要排序的副本时,您不会被不小心地覆盖列表,但也需要保留未排序的版本。在Python2.4中,一个新的内置函数-sorted()-增加。此函数根据提供的可迭代性创建一个新列表,对其进行排序并返回它。

千巷猫影

它什么也不回。它将/Add添加到变量中,以查看您应该使用用于在打印中追加的第一个变量friends=["Rajendra V"]friends.append("John")print(friends)
随时随地看视频慕课网APP

相关分类

Python
我要回答