gpt4 book ai didi

python - 是否有类似 zipper 的功能可以填充到最长的长度?

转载 作者:IT老高 更新时间:2023-10-28 12:29:36 28 4
gpt4 key购买 nike

是否有类似 zip() 的内置函数?但这会填充结果,以便结果列表的长度是 longest 输入的长度,而不是 shortest 输入的长度?

>>> a = ['a1']
>>> b = ['b1', 'b2', 'b3']
>>> c = ['c1', 'c2']

>>> zip(a, b, c)
[('a1', 'b1', 'c1')]

>>> What command goes here?
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]

最佳答案

在 Python 3 中,您可以使用 itertools.zip_longest

>>> list(itertools.zip_longest(a, b, c))
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]

您可以使用 fillvalue 参数填充与 None 不同的值:

>>> list(itertools.zip_longest(a, b, c, fillvalue='foo'))
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]

在 Python 2 中,您可以使用 itertools.izip_longest (Python 2.6+),或者你可以使用 mapNone。鲜为人知的feature of map (但 map 在 Python 3.x 中发生了变化,所以这只适用于 Python 2.x。

>>> map(None, a, b, c)
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]

关于python - 是否有类似 zipper 的功能可以填充到最长的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1277278/

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