Python 关于list.extend(元组)

Python 关于list.extend(元组),python,python-2.7,Python,Python 2.7,代码如下: >>> a = ['xyz'] >>> b = (5,) >>> a.extend(b) >>> a ['xyz', 5] 我查了很多信息,但他们都告诉我: list.extend(seq) seq -- This is the list of elements 我想知道为什么列表可以扩展元组。 thx.如果您查看扩展的文档字符串,您将看到它可以通过任何iterable进行扩展: """ L.extend(i

代码如下:

>>> a = ['xyz']
>>> b = (5,)
>>> a.extend(b)
>>> a
['xyz', 5]
我查了很多信息,但他们都告诉我:

list.extend(seq)
seq -- This is the list of elements
我想知道为什么列表可以扩展元组。

thx.

如果您查看
扩展的
文档字符串
,您将看到它可以通过任何iterable进行扩展:

""" L.extend(iterable) -> None -- extend list by appending elements from the iterable """
这意味着您不仅限于
列表
s或
元组
s,而且还限于
字符串
s、
s和其他iterables:

for iterable in ('ab', set([1, 2, 3]), {1:2, 3:4}, (0, 1)):
    l = [1]
    l.extend(iterable)
    print(l)
这张照片是:

[1, 'a', 'b']
[1, 1, 2, 3]
[1, 1, 3] # Note dictionaries iterate over keys by default
[1, 0, 1]

List方法
extend
可以从任何iterable扩展列表实例,tuple是iterable。因此,它与您所说的相反,元组扩展列表,而不是相反。

它的意思正是它所说的,这就是您所做的:取一个
列表
并按顺序扩展它。它不必完全是
列表
类型。在这一点上,你找到的资源应该更清楚

报告说:

下表中的操作是在可变序列类型上定义的。提供ABC是为了更容易在自定义序列类型上正确执行这些操作

在表中,s是可变序列类型的实例,t是任意可调对象,x是满足s施加的任何类型和值限制的任意对象(例如,仅接受满足值限制
0的整数)
s.extend(t) or s += t