是否有 Python 函数“outer-zip”,它是zip
每个迭代的不同默认值的扩展?
a = [1, 2, 3] # associate a default value 0
b = [4, 5, 6, 7] # associate b default value 1
zip(a,b) # [(1, 4), (2, 5), (3, 6)]
outerzip((a, 0), (b, 1)) = [(1, 4), (2, 5), (3, 6), (0, 7)]
outerzip((b, 0), (a, 1)) = [(4, 1), (5, 2), (6, 3), (7, 1)]
我几乎可以使用map复制这个 outerzip 函数,但None
作为唯一的默认值:
map(None, a, b) # [(1, 4), (2, 5), (3, 6), (None, 7)]
注意1:内置zip
函数可以接受任意数量的迭代,outerzip
函数也应该如此。(例如,应该能够与和outerzip((a,0),(a,0),(b,1))
类似地计算。)zip(a,a,b)
map(None, a, a, b)
注意2:我说的是“outer-zip”,以这个haskell question的风格,但也许这不是正确的术语。