我需要包含两个列表。即保留较长列表的值,并可能为较短的列表添加默认值:
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)]
我可以自己做点什么,但想知道是否有内置或超级简单的解决方案。
答案 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)