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

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

Susan Sarandon
发布: 2024-12-15 21:20:13
原创
606 人浏览过

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

迭代列表中的每两个元素

在 Python 中,迭代列表通常涉及使用 for 循环或列表理解。但是,当您需要一起访问每两个元素时,标准方法可能不够。

要迭代列表中的每对元素,可以使用 pairwise()实现:

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

l = [1, 2, 3, 4, 5, 6]

for x, y in pairwise(l):
    print(f"{x} + {y} = {x + y}")
登录后复制

此函数迭代列表两次,将每个元素与下一个元素配对。它生成类似于以下内容的输出:

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

对于更通用的解决方案,请考虑 grouped() 函数,它允许您迭代 n 个元素的组:

def grouped(iterable, n):
    "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)

for x, y in grouped(l, 2):
    print(f"{x} + {y} = {x + y}")
登录后复制

此函数接受列表和组大小作为参数,并返回一个生成元素组的迭代器。例如,调用 grouped([1, 2, 3, 4, 5, 6], 3) 将产生:

(1, 2, 3)
(4, 5, 6)
登录后复制

在 Python 2 中,您可以使用 出于兼容性目的,izip 而不是 zip

这些方法提供高效灵活的方式来迭代列表中的元素,允许您根据需要成对或成组地处理它们。

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

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