我是靠谱客的博主 飘逸小蚂蚁,最近开发中收集的这篇文章主要介绍python只能加入一个迭代_python – 为什么我不能在同一个数据上迭代两次?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这是因为数据是一个迭代器,您只能使用迭代器一次.例如:

lst = [1, 2, 3]

it = iter(lst)

next(it)

=> 1

next(it)

=> 2

next(it)

=> 3

next(it)

=> StopIteration

如果我们使用for循环遍历某些数据,则最后一个StopIteration将导致它第一次退出.如果我们再次尝试迭代,我们将继续获得StopIteration异常,因为迭代器已经被使用了.

现在第二个问题:如果我们需要多次遍历迭代器怎么办?一个简单的解决方案是创建一个包含元素的列表,我们可以根据需要多次遍历它.只要列表中的元素很少,这是正确的

data = list(db[3])

但是如果有很多元素,那么使用Python.org/2/library/itertools.html#itertools.tee” rel=”noreferrer”>tee()创建独立的迭代器是一个更好的主意:

import itertools

it1, it2 = itertools.tee(db[3], n=2) # create as many as needed

现在我们可以依次循环遍历每一个:

for e in it1:

print("doing this one time")

for e in it2:

print("doing this two times")

最后

以上就是飘逸小蚂蚁为你收集整理的python只能加入一个迭代_python – 为什么我不能在同一个数据上迭代两次?的全部内容,希望文章能够帮你解决python只能加入一个迭代_python – 为什么我不能在同一个数据上迭代两次?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部