Python生成一个迭代器的实操方法

yipeiwu_com7年前Python基础

Python怎么生成一个迭代器,对于需要处理大型数据来说,迭代器是必不可少的,这样可节省大量内存空间,更加合理操作数据。

首先我们打开编辑器,这里以Sublime text3作为示范,创建一个新的py文档。

rg = range(100)

for i in rg:

print(i)

我们知道range可以涵盖比较广的范围,但是如果数据太大的时候,一次性打印会占用比较多内存。


rg = range(100)

rg_iter = iter(rg)

print(rg_iter)

那么这个时候我们就可以用iter()来创建迭代器。打印一下可以看到迭代器对象。

rg = range(100)

rg_iter = iter(rg)

for i in rg_iter:

print(i)

同样,我们可以用for循环来进行遍历数据。

rg = range(100)

rg_iter = iter(rg)

print(rg_iter.next())

我们可以用next()来调用数据,但是这里出错了,是因为python3不能这么书写了。

rg = range(100)

rg_iter = iter(rg)

print(rg_iter.__next__())

实际上我们需要写__next__(),这是新版本的要求。

rg = range(100)

rg_iter = iter(rg)

print(rg_iter.__next__())

print(rg_iter.__next__())

print(rg_iter.__next__())

如果我们要调用多个,只需要多次输入__next__()即可。

相关文章

Python将列表数据写入文件(txt, csv,excel)

写入txt文件 def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表. file = open(file...

布隆过滤器的概述及Python实现方法

布隆过滤器 布隆过滤器是一种概率空间高效的数据结构。它与hashmap非常相似,用于检索一个元素是否在一个集合中。它在检索元素是否存在时,能很好地取舍空间使用率与误报比例。正是由于这个特...

浅谈pytorch、cuda、python的版本对齐问题

在使用深度学习模型训练的过程中,工具的准备也算是一个良好的开端吧。熟话说完事开头难,磨刀不误砍柴工,先把前期的问题搞通了,能为后期节省不少精力。 以pytorch工具为例: pytorc...

python单链表实现代码实例

链表的定义:链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结点都包含了可以链接起来的地址信息,所以...

Python中的探索性数据分析(功能式)

这里有一些技巧来处理日志文件提取。假设我们正在查看一些Enterprise Splunk提取。我们可以用Splunk来探索数据。或者我们可以得到一个简单的提取并在Python中摆弄这些数...