给定多个列表,如图所示:
a = [1, 2, 3]
b = [5, 6, 7, 8]
c = [9, 0, 1]
d = [2, 3, 4, 5, 6, 7]
...
在开始从第二个列表中获取元素之前,我希望能够将它们组合起来,从第一个列表中获取尽可能多的元素,因此结果将是:
result = [1, 2, 3, 8, 6, 7]
有没有一个特别好的方法来写这个。我想不出一个真正简单的没有for循环的。也许是一个有着巧妙拉链的列表。我很想看看你们能想出什么办法。你知道吗
提前感谢:)
Tags:
简单的切片和拼接:
或具有更多列表:
使用
itertools.zip_longest()
for Python 3,可以处理任意数量的输入列表:默认的填充值是
None
,因此在使用zip_longest
调用创建的每个元组中使用第一个noneNone
元素(如果None
是有效的数据值,则可以更改默认值和条件)使用
functools.reduce
:这将输出:
相关问题 更多 >
编程相关推荐