Python包含Zip操作

时间:2017-09-18 08:41:51

标签: python-3.x built-in

我需要包含两个列表。即保留较长列表的值,并可能为较短的列表添加默认值:

e.g。

lst_a = [1,2,3]  # len = 3
lst_b = [5,6,7,8]  # len = 4

# no default values
inclusive_zip(lst_a, lst_b) = [(1,5),(5,6),(3,7),(None,8)]

# with default value (e.g. for position in 2D space)
inclusive_zip(lst_a, 0, lst_b, 0) = [(1,5),(5,6),(3,7),(0,8)]

我可以自己做点什么,但想知道是否有内置或超级简单的解决方案。

1 个答案:

答案 0 :(得分:0)

itertools.zip_longest(*iterables, fillvalue=None)

import itertools

def add_by_zip(p1,p2):
    p_out = [a+b for a,b in itertools.zip_longest(p1,p2, fillvalue=0)]
    print(p_out)