首页 > 后端开发 > Python教程 > 如何迭代 Python 列表中的元素对(或组)?

如何迭代 Python 列表中的元素对(或组)?

Susan Sarandon
发布: 2024-12-10 15:55:13
原创
666 人浏览过

How Can I Iterate Over Pairs (or Groups) of Elements in a Python List?

迭代列表中的成对元素

迭代列表时,我们经常遇到需要访问两个元素的情况一次。为了解决这个问题,我们可以利用成对迭代的概念。

Python 的内置 zip() 函数可以在这方面为我们提供帮助。 pairwise() 或 grouped() 方法使用可迭代对象并生成连续的二元素子序列。下面是我们如何实现它:

def pairwise(iterable):
    "s -> (s0, s1), (s2, s3), (s4, s5), ..."
    a = iter(iterable)
    return zip(a, a)
登录后复制

使用这个函数,让我们考虑列表 [1, 2, 3, 4, 5, 6]。演示成对迭代:

for x, y in pairwise(l):
   print("%d + %d = %d" % (x, y, x + y))
登录后复制

这将产生以下输出:

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11
登录后复制

或者,grouped() 函数允许我们一次迭代 n 个元素。这是一个实现:

def grouped(iterable, n=2):
    "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..."
    return zip(*[iter(iterable)] * n)
登录后复制

例如,将 n 设置为 3,我们可以一次迭代三个元素:

for x, y, z in grouped(l, 3):
   print("%d + %d + %d = %d" % (x, y, z, x + y + z))
登录后复制

这种方法非常高效,因为它迭代仅列出一次,无需中间列表。

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

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