代码在这里:
>>> a = ['xyz']
>>> b = (5,)
>>> a.extend(b)
>>> a
['xyz', 5]
我检查了很多信息,但他们都告诉我:
list.extend(seq)
seq -- This is the list of elements
我想知道为什么列表可以扩展一个元组 THX。
答案 0 :(得分:1)
如果查看docstring
的{{1}},您会看到它可以被任何迭代扩展:
extend
这意味着您不仅限于""" L.extend(iterable) -> None -- extend list by appending elements from the iterable """
或list
s,还包括tuple
s,string
和其他迭代:
set
打印:
for iterable in ('ab', set([1, 2, 3]), {1:2, 3:4}, (0, 1)):
l = [1]
l.extend(iterable)
print(l)
答案 1 :(得分:-1)
列表方法extend
可以从任何可迭代扩展列表实例,并且元组是可迭代的。所以它与你所说的相反,元组扩展了列表,而不是相反。
答案 2 :(得分:-1)
这正是它所说的,这就是你所做的:取一个list
并按顺序扩展它。它不必完全是list
类型。您发现的资源在这一点上可以更清楚。
下表中的操作是在可变序列类型上定义的。提供
collections.abc.MutableSequence
ABC是为了更容易在自定义序列类型上正确实现这些操作。在表中 s 是可变序列类型的实例, t 是任何可迭代对象, x 是一个任意对象 s 强加的任何类型和值限制(例如,
bytearray
只接受符合值限制0 <= x <= 255
)的整数。
...
s.extend(t) or s += t
使用 t 的内容扩展 s (大部分与
s[len(s):len(s)] = t
相同)
因此,您示例中的a
可以是任何可变序列类型,例如list
,而b
可以是任何序列,例如tuple
。