关于python:Extend:同时从其他列表(或变量)合并列表中的字符串

Extend: merge strings on a list from other lists (or variables) at the same time

本问题已经有最佳答案,请猛点这里访问。

我有3个不同的列表,需要合并它们。当您只需要用一个元素扩展一个列表或添加一个inteire列表时,这很容易。但是,如果有更多的列表或者在中间添加一个变量,这似乎是不可能的。

1
2
3
list1 = [ 'a', 'b', 'c']
list2 = [ 'd', 'e', 'f']
list3 = ['g', 'h', 'i']

只添加一个列表:

1
list1.extend(list3)

返回:

1
['a', 'b', 'c', 'g', 'h', 'i']

添加两个列表:

1
list1.extend((list2,list3))

在另一个列表中返回两个列表:

1
['a', 'b', 'c', ['d', 'e', 'f'], ['g', 'h', 'i']]

使用运算符"+"添加两个列表:

1
list1.extend((list2 + list3))

退换商品

1
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

但如果你需要这样做:

1
list1.extend(('test' + list2 + fetch[0] + list3 + etc, etc, etc))

不起作用。无法连接。

添加循环的临时解决方案可以是:

1
2
3
4
for l1 in list2:
    list1.extend(l1)
for l2 in list3:
    list1.extend(l2)

最终拥有:

1
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

显然是浪费线路和周期

有没有更有效的方法不用外部模块来存档?

编辑:简单列表的例子只是为了理解我基本上需要什么。真正的问题是在一行".extend"上添加字符串、数字或索引。

解决了的:

韦恩·沃纳把我带到正确的方向来连接不同类型的元素。

1
2
3
4
5
6
list1 = [ 'a', 'b', 'c']
list2 = [ 'd', 'e', 'f']
list3 = ['g', 'h', 'i']

for other_list in (['test'], str(1), list2[2], list2[1]):
    list1.extend(other_list)

结果:

1
['a', 'b', 'c', 'test', '1', 'f', 'e']


如果您正在寻找一种用N个其他列表扩展单个列表的干净方法,那么就这么简单:

1
2
3
my_list = ['a', 'b', 'c']
for other_list in (some_iterable, some_other_iterable, another_iterable):
    my_list.extend(other_list)

我想不出比这更合理的解决办法了。


只需对要添加的每个列表使用extend

1
2
list1.extend(list2)
list1.extend(list3)


您可以在其中一个列表中添加其他两个列表:

1
2
3
4
5
list1 = [ 'a', 'b', 'c']
list2 = [ 'd', 'e', 'f']
list3 = ['g', 'h', 'i']

list3.extend(lis1 + list2)