将iterable的所有元素添加到列表中

时间:2013-12-15 08:51:17

标签: python list tuples

是否有更简洁的方法来执行以下操作?

t = (1,2,3)
t2 = (4,5)

l.addAll(t)
l.addAll(t2)
print l # [1,2,3,4,5]

这是我到目前为止所尝试的:我宁愿避免在参数列表中传递。

def t_add(t,stuff):
    for x in t:
        stuff.append(x)

2 个答案:

答案 0 :(得分:44)

使用list.extend(),而不是list.append()将迭代中的所有项目添加到列表中:

l.extend(t)
l.extend(t2)

l.extend(t + t2)

甚至:

l += t + t2

其中list.__iadd__(就地添加)实施为list.extend()

演示:

>>> l = []
>>> t = (1,2,3)
>>> t2 = (4,5)
>>> l += t + t2
>>> l
[1, 2, 3, 4, 5]

但是,如果您只想创建t + t2列表,那么list(t + t2)将是到达目的地的最短途径。

答案 1 :(得分:5)

stuff.extend就是你想要的。

t = [1,2,3]
t2 = [4,5]
t.extend(t2)
# [1, 2, 3, 4, 5]

或者你可以做到

t += t2