首页 > 后端开发 > Python教程 > 如何有效地分块迭代 Python 列表?

如何有效地分块迭代 Python 列表?

Susan Sarandon
发布: 2024-12-19 19:36:10
原创
330 人浏览过

How Can I Efficiently Iterate Over a Python List in Chunks?

以块的形式迭代列表:Pythonic 解决方案

在本文中,我们探索以块的形式迭代 Python 列表的方法,其中每个块由特定数量的元素组成。给定的情况涉及一次处理四个整数。

传统方法

提供的代码段描述了对列表进行分块的 C 风格方法:

for i in range(0, len(ints), 4):
    # dummy op for example code
    foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
登录后复制

虽然此方法有效,但它可能与 Python 的惯用方式不一致

Python 解决方案

1.使用 chunker 函数

从 Python 3.12 开始,Python 引入了 chunker 函数,它提供了一种简洁高效的方法来对任何序列进行分块:

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
登录后复制

该函数创建一个生成器从给定的序列中生成指定大小的块。以下代码展示了用法:

for group in chunker(text, 7):
    print(repr(group),)
登录后复制

2.使用 itertools.islice

对于 3.12 之前的 Python 版本,itertools.islice 可用于分块:

from itertools import islice

def grouper(seq, size):
    it = iter(seq)
    while True:
        chunk = list(islice(it, size))
        if not chunk:
            return
        yield chunk
登录后复制

此函数类似地创建一个生成器,它生成元素列表从

结论

chunker 函数为 Python 3.12 及更高版本中的分块列表提供了原生且高效的解决方案。对于早期版本,grouper 函数提供了合适的替代方案。这些方法允许在处理大型列表时使用更简洁和惯用的代码。

以上是如何有效地分块迭代 Python 列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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