小编典典

Python列表+ =可迭代的行为是否记录在任何地方?

python

看来在Python中,它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。这在文档中有详细说明


阅读 224

收藏
2020-12-20

共1个答案

小编典典

Guido van
Rossum
出发:

.extend()除了也返回外,其工作方式与之相同self。我找不到说明此问题的文档。:-(

以下是相关的源代码,摘自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

2020-12-20