列表中的extend()和+之间的区别-python

时间:2020-06-11 19:34:41

标签: python list concatenation extend

我想知道l1 + l2和l1.extend(l2)之间的确切区别是什么,因为它们都将python中的列表连接在一起。

关于相同的问题,我已经阅读了以下帖子。

Concatenating two lists - difference between '+=' and extend()

我清楚地知道,extend()涉及函数调用,因此可能会更昂贵。而且l1 + l2选项也不能用于非局部变量。

但是在我的情况下,我有一个递归代码,该代码最终返回两个列表的串联。我使用了扩展方法l1.extend(l2)。而且我遇到了以下错误。

nonetype'对象不可迭代

“ NoneType”类型的对象没有len()

但是请注意,列表不是None或NoneType。 我什至尝试打印type(l1)和len(l1),并且类型仅是列表。

但是有一件事是,如果我将扩展方法替换为l1 + l2,则整个代码都可以正常工作,并且我没有收到任何错误。

我可以知道为什么会这样吗?任何想法/建议

1 个答案:

答案 0 :(得分:0)

>>> print(l1.extend(l2))
None

l1.extend(l2)在l1已更新时不返回任何内容。错误(但没有代码我们无法确定)可能是您需要再次将l1.extend(l2)分配给(新)变量。

相关问题