下面是我要合并并创建新列表的两个列表:

>>>
>>> ls1 = [1, 2, 3, 4, 5]
>>> ls2 = ['a', 'b', 'c', 'd']
>>>

注:这两份名单可能大小不同。
所需输出:
[(1, 2, 'a', 'b'), (3, 4, 'c', 'd'), (5)]

我尝试使用itertools.izip_最长时间,但未能实现:
>>> list(itertools.izip_longest(ls1, ls2))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, None)]
>>>

有人能给我点光吗?
谢谢

最佳答案

一个好的旧循环怎么样?

result = []
for i in range(0, max(len(ls1),len(ls2)), 2):
    result.append(tuple(ls1[i:i+2] + ls2[i:i+2]))

08-25 02:15