gpt4 book ai didi

python - Outerzip/zip 最长功能(具有多个填充值)

转载 作者:太空狗 更新时间:2023-10-29 22:16:28 26 4
gpt4 key购买 nike

是否有一个 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”,风格是 this haskell question ,但这也许不是正确的术语。

最佳答案

它叫做 izip_longest (python-3.x 中的 zip_longest):

>>> from itertools import zip_longest
>>> a = [1,2,3]
>>> b = [4,5,6,7]
>>> list(zip_longest(a, b, fillvalue=0))
[(1, 4), (2, 5), (3, 6), (0, 7)]

关于python - Outerzip/zip 最长功能(具有多个填充值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com