python中的list.append()返回null

时间:2016-06-03 03:36:34

标签: python

在python中list1.append()和list1 + list2之间的实际区别是什么? 除此之外,为什么以下语句返回NULL?

print(list1.append(list2))

{其中list1和list2是2个简单列表}

4 个答案:

答案 0 :(得分:1)

list.append()修改对象并返回None。

[] + []创建并“返回”新列表。

https://docs.python.org/2.7/tutorial/datastructures.html#more-on-lists

推荐阅读:http://docs.python-guide.org/en/latest/writing/gotchas/

答案 1 :(得分:1)

返回None是一种传达操作是副作用的方式 - 也就是说,它正在改变其中一个操作数,而不是保持它们不变并返回一个新值。

list1.append(list2)

... 更改list1 ,使其成为此类别的成员。

比较以下两个代码块:

# in this case, it's obvious that list1 was changed
list1.append(list2)
print list1

...和

# in this case, you as a reader don't know if list1 was changed,
# unless you already know the semantics of list.append.
print list1.append(list2)

禁止后者(使其变得无用)从而增强了语言的可读性。

答案 2 :(得分:0)

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.append(b) # append just appends the variable to the next index and returns None
>>> print a
[1,2,3,[4,5,6]]
>>> a.extend(b) # Extend takes a list as input and extends the main list
[1,2,3,4,5,6]
>>> a+b # + is exactly same as extend
[1,2,3,4,5,6]

答案 3 :(得分:0)

打印函数时,打印它返回的内容,append方法不返回任何内容。但是,您的列表现在有一个新元素。您可以打印列表以查看所做的更改。

list1 + list2表示您将2个列表合并为一个大列表。

list1.append(element)在列表末尾添加一个元素。

这是附加vs +

的示例
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a + b
[1, 2, 3, 4, 5, 6]
>>>
>>> a.append(b)
>>> a
[1, 2, 3, [4, 5, 6]]