可能是一个简单的问题,但我想将一个列表的元素分别解析为另一个列表。例如:
a=[5, 'str1']
b=[8, 'str2', a]
目前
b=[8, 'str2', [5, 'str1']]
但我希望成为b=[8, 'str2', 5, 'str1']
并且执行b=[8, 'str2', *a]
也不起作用。
答案 0 :(得分:11)
使用extend()
b.extend(a)
[8, 'str2', 5, 'str1']
答案 1 :(得分:6)
你可以使用加法:
>>> a=[5, 'str1']
>>> b=[8, 'str2'] + a
>>> b
[8, 'str2', 5, 'str1']
答案 2 :(得分:3)
执行此操作的有效方法是使用list类的extend()方法。它将iteratable作为参数并将其元素追加到列表中。
b.extend(a)
在内存中创建新列表的其他方法是使用+运算符。
b = b + a
答案 3 :(得分:1)
>>> a
[5, 'str1']
>>> b=[8, 'str2'] + a
>>> b
[8, 'str2', 5, 'str1']
>>>
extend()您需要单独定义 b和 ...
然后b.extend(a)
将起作用
答案 4 :(得分: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']