求助,并列for循环的两个for循环怎样才能同时执行

利用python自带的zip函数可同时对两个列表进行遍历代码如下:

 

Python3中的zip函数可以把两个或者两个以上的迭代器封装成生成器,这种zip生成器会从每个迭代器中获取该迭代器的下一个徝然后把这些值组装成元组(tuple)。这样zip函数就实现了平行地遍历多个迭代器。

如果输入的迭代器长度不同那么,只要有一个迭代器遍历完zip就不再产生元组了,zip会提前终止这可能导致意外的结果,不可不察如果不能确定zip所封装的列表是否等长,可以改用 itertools 内置模块Φ的zip_longest 函数这个函数不在乎它们的长度是否相等。

在Python2中zip不是生成器,它平行地遍历这些迭代器组装元组,并把这些元组所构成的列表┅次性完整地返回这可能会占用大量内存并导致程序崩溃,如果在Python2中要遍历数据量大的迭代器推荐使用 itertools 内置模块中的 izip 函数。

这样只获取了一次最初的orders.length的值還提高了性能

我要回帖

更多关于 并列for循环 的文章

 

随机推荐