首页 > 后端开发 > Python教程 > 如何有效地迭代 Python 列表中的重叠对(和三元组)?

如何有效地迭代 Python 列表中的重叠对(和三元组)?

Mary-Kate Olsen
发布: 2024-12-22 06:00:18
原创
807 人浏览过

How to Efficiently Iterate Over Overlapping Pairs (and Triples) in Python Lists?

如何从列表中迭代重叠的值对

在 Python 中使用列表时,通常需要成对迭代值。一种常见的方法是使用如下构造:

虽然此代码有效,但有一种更惯用且更有效的解决方案,使用 itertools 模块中的pairwise 函数。这是修订后的 Python 3.8 实现:

对于 Python 2,使用 itertools.izip 而不是 zip(因为 Python 2 中的 zip 创建一个列表而不是惰性迭代器)。

成对函数的工作原理是创建两个并行迭代器 a 和 b,指向同一个第一个元素。然后使用 next 将 b 向前推进一步。 izip 函数将两个迭代器中的元素组合起来形成重叠对。

这种方法也可以推广到处理更大的值“窗口”。例如,要迭代三元组的值,请使用以下函数:

警告: 需要注意的是,如果其中一个迭代器由于以下原因而比其他迭代器前进得更远,请务必注意:使用 next,该实现会将消耗的元素保留在内存中,直到所有迭代器都消耗完它们。

以上是如何有效地迭代 Python 列表中的重叠对(和三元组)?的详细内容。更多信息请关注PHP中文网其他相关文章!

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