如何将 Python 的 Zip 函数填充到最长可迭代的长度?

Patricia Arquette
发布: 2024-11-26 10:49:09
原创
205 人浏览过

How Can I Pad Python's Zip Function to the Length of the Longest Iterable?

将 Zip 扩展到 Pad 至最大长度

Zip 是 Python 中的一个内置函数,它组合了多个可迭代对象。但是,它会停在最短可迭代的长度处。如果我们想要填充结果以匹配最长可迭代的长度怎么办?

解决方案

在 Python 3 中,itertools.zip_longest 提供了此功能。默认情况下,它使用 None 评估所有迭代和填充,保持对齐。

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

list(itertools.zip_longest(a, b, c))

# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
登录后复制

您可以使用 fillvalue 参数自定义填充值:

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 ) 或使用 None 进行映射:

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

map(None, a, b, c)

# [('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
登录后复制

以上是如何将 Python 的 Zip 函数填充到最长可迭代的长度?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板