看来在Python中,它list += x适用于任何可迭代的对象x:
list += x
x
In [6]: l = [] In [7]: l += [1] In [8]: l += (2, 3) In [9]: l += xrange(5) In [10]: l Out[10]: [1, 2, 3, 0, 1, 2, 3, 4]
此行为记录在任何地方吗?
与此形成对比的是list + x,后者仅当x也是有效时才起作用list。这在文档中有详细说明。
list + x
list
从Guido van Rossum出发:
它.extend()除了也返回外,其工作方式与之相同self。我找不到说明此问题的文档。:-(
.extend()
self
以下是相关的源代码,摘自listobject.c:
listobject.c
list_inplace_concat(PyListObject *self, PyObject *other) { PyObject *result; result = listextend(self, other); if (result == NULL) return result; Py_DECREF(result); Py_INCREF(self); return (PyObject *)self; }
我提出了一个错误报告来修复此文档:http : //bugs.python.org/issue16701