微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

zip替代方案,用于迭代两个可迭代对象

如何解决zip替代方案,用于迭代两个可迭代对象

itertools一个功能izip可以做到这一点

from itertools import izip
for i, j in izip(handle1, handle2):
    ...

如果文件大小不同,则可以使用izip_longest,因为izip会停在较小的文件上。

解决方法

我有两个较大的文本文件(约100 GB),必须同时对其进行迭代。

Zip适用于较小的文件,但我发现它实际上是从我的两个文件中列出行的列表。这意味着每一行都存储在内存中。我不需要重复做任何事情。

handle1 = open('filea','r'); handle2 = open('fileb','r')

for i,j in zip(handle1,handle2):
    do something with i and j.
    write to an output file.
    no need to do anything with i and j after this.

zip()是否有替代方法可以充当生成器,使我无需使用> 200GB的ram就可以遍历这两个文件?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。