我已经看到实际上有两种(可能更多)方法在Python中连接列表:一种方法是使用extend()方法:
a = [1, 2]
b = [2, 3]
b.extend(a)
Run Code Online (Sandbox Code Playgroud)
另一个使用加号(+)运算符:
b += a
Run Code Online (Sandbox Code Playgroud)
现在我想知道:这两个选项中的哪一个是"pythonic"方式进行列表连接,两者之间是否存在差异(我查阅了官方Python教程但未找到任何关于此主题的内容).
为什么这两个操作(append()
分别+
)给出不同的结果?
>>> c = [1, 2, 3]
>>> c
[1, 2, 3]
>>> c += c
>>> c
[1, 2, 3, 1, 2, 3]
>>> c = [1, 2, 3]
>>> c.append(c)
>>> c
[1, 2, 3, [...]]
>>>
Run Code Online (Sandbox Code Playgroud)
在最后一种情况下,实际上存在无限递归.c[-1]
并且c
是一样的.为什么它与+
操作不同?