如何将一个列表中的所有元素添加到另一个列表中?

11

可能是一个简单的问题,但我想将一个列表中的元素逐个解析到另一个列表中。例如:

a=[5, 'str1'] 
b=[8, 'str2', a] 

目前

b=[8, 'str2', [5, 'str1']] 

然而我希望成为 b=[8,'str2',5,'str1']

而且 b=[8,'str2',*a] 也不起作用。

5个回答

30

使用extend()

b.extend(a)
[8, 'str2', 5, 'str1']

18
您可以使用加法:

>>> a=[5, 'str1']
>>> b=[8, 'str2'] + a
>>> b
[8, 'str2', 5, 'str1']

1
这绝对是最好的选择。谢谢。 - bigboat

12

使用列表类的extend()方法是这个操作的高效方式。它接受一个可迭代对象作为参数,并将其元素附加到列表中。

b.extend(a)

使用 + 运算符创建一个在内存中新列表的另一种方法。

b = b + a

1
这绝对是更好的解决方案。 - Kshitij

3
>>> a
[5, 'str1']
>>> b=[8, 'str2'] + a
>>> b
[8, 'str2', 5, 'str1']
>>> 

对于 extend() 方法,你需要单独定义 b 和 a...

然后使用 b.extend(a) 即可。


0

您可以使用切片在任意位置解包另一个列表中的列表:

>>> a=[5, 'str1'] 
>>> b=[8, 'str2'] 
>>> b[2:2] = a   # inserts and unpacks `a` at position 2 (the end of b)
>>> b
[8, 'str2', 5, 'str1']

同样地,您也可以将它插入到另一个位置:

>>> a=[5, 'str1'] 
>>> b=[8, 'str2'] 
>>> b[1:1] = a
>>> b
[8, 5, 'str1', 'str2']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接