我正在使用Python 3.x
中的列表。
我想合并两个列表:
list1 = [1, 2, 3, 4]
list2 = [7, 8, 9, 19]
预期的输出如下:
list3 = [1, 7, 2, 8, 3, 9, 4, 19]
我不允许使用任何高级数据结构,而需要以pythonic方式编写。
答案 0 :(得分:4)
我们可以像这样使用list comprehension
:
list1 = [1, 2, 3, 4]
list2 = [7, 8, 9, 19]
list3 = [v for v1_v2 in zip(list1, list2) for v in v1_v2]
assert list3 == [1, 7, 2, 8, 3, 9, 4, 19]
答案 1 :(得分:2)
例如:
from itertools import chain
list(chain(*zip(v1, v2)))
答案 2 :(得分:2)
zip()
将两个列表放在一起,然后用itertools.chain.from_iterable()
展平:
>>> from itertools import chain
>>> list1 = [1,2,3,4]
>>> list2 = [7,8,9,19]
>>> list(chain.from_iterable(zip(list1, list2)))
[1, 7, 2, 8, 3, 9, 4, 19]
答案 3 :(得分:1)
您可以使用reduce
在两个列表的总和中使用functools
中的zip
from functools import reduce
from operator import add
list1 = [1,2,3,4]
list2 = [7,8,9,19]
x = list(reduce(add, zip(list1, list2)))
x
[1, 7, 2, 8, 3, 9, 4, 19]
答案 4 :(得分:0)
尝试以下代码:
list1 = [1, 2, 3, 4]
list2 = [7, 8, 9, 19]
new_list = []
for i in range(len(list1)):
new_list.extend([list1[i], list2[i]])
print(new_list)
输出:
[1, 7, 2, 8, 3, 9, 4, 19]