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中的内建函数,可迭代对象,迭代器
Python中的内建函数和可迭代对象,迭代器 求值标识 id() #标识id 返回对象的唯一标识,CPython返回内存地址 hash() #哈希, 返回对象的哈希值 len(s) -->返回一个集合类型的元素个数 range(start,stop[,step]) -->返回一个从start开始到stop结束,步长为step的可迭代对象.step默认为1 类型判断 type() #返回对象的类型 isinstance(obj,class_or_tuple) ->True|False #判
-
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
1.iterable iterator区别 要了解两者区别,先要了解一下迭代器协议: 迭代器协议是指:对象需要提供__next__()方法,它返回迭代中的元素,在没有更多元素后,抛出StopIteration异常,终止迭代. 可迭代对象就是:实现了迭代器协议的对象. 协议是一种约定,可迭代对象实现迭代器协议,Python的内置工具(如for循环,sum,min,max函数等)通过迭代器协议访问对象,因此,for循环并不需要知道对象具体是什么,只需要知道对象能够实现迭代器协议即可. 迭代器(ite
-
Python3之手动创建迭代器的实例代码
迭代器即可以遍历诸如列表,字典及字符串等序列对象甚至自定义对象的对象,其本质就是记录迭代对象中每个元素的位置.迭代过程从第一个元素至最后一个元素,且过程不能回滚或反方向迭代. 两个基本方法iter.next 序列对象可以利用 iter() 直接创建迭代器,并通过 next() 即可迭代迭代器. 利用for循环迭代 S = 'PYTHON' IT = iter(S) for it in IT: print(it) 示例结果: P Y T H O N 利用next()迭代 S = 'PYTHON'
-
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
前言 在Python中可迭代(Iterable).迭代器(Iterator)和生成器(Generator)这几个概念是经常用到的,初学时对这几个概念也是经常混淆,现在是时候把这几个概念搞清楚了. 0x00 可迭代(Iterable) 简单的说,一个对象(在Python里面一切都是对象)只要实现了只要实现了__iter__()方法,那么用isinstance()函数检查就是Iterable对象: 例如 class IterObj: def __iter__(self): # 这里简单地返回自身 #
-
Python3.5迭代器与生成器用法实例分析
本文实例讲述了Python3.5迭代器与生成器用法.分享给大家供大家参考,具体如下: 1.列表生成式 通过列表生成式可以直接创建一个列表.代码:a = [i*2 for i in range(10)] #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #列表生成式 a = [i*2 for i in range(10)] print(a) 运行结果: [0, 2, 4, 6, 8, 10, 12, 14, 16
-
深入浅析Python中的迭代器
目录结构: contents structure [-] 在开始文章之前,先贴上一张Iterable.Iterator与Generator之间的关系图: 1. Iterator VS Iterable 迭代器(Iterator) 迭代器是实现了迭代器协议的类对象,迭代器协议规定了迭代器类必需定义__next()__方法.当对迭代器对象调用next()方法时,对象会去调用__next()__计算迭代器的返回值. 可迭代对象(Iterable) 可迭代对象可以是任何对象,不一定是能返回迭代器的数据结
-
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) 那么这个时候我们就可以
-
python实现键盘输入的实操方法
python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入. 第一首先打开电脑的python编辑工具. 再创建python项目. 第二然后应用sys函数. 命令为import sys. 第三然后定义一个int类型的x. 再用函数进行接收键盘的输入. 第四然后用sys.stdin.readline方法. 再读取x的数值. 第五然后进行输出x的数值. 再用print函数进行输出. 第六然后右键点击python项目. 再点击运行项目. 这样就实现python的键盘
-
python程序变成软件的实操方法
本人新学python,发现python程序转成软件好麻烦,为了方便大家,同时自己整理下资源,发布以下教程哦. 下载 "pywin32"软件,选择最新的build文件夹,支持新版本的python 下载完毕后进行安装,需要相应版本的python作为支持 安装完成后,打开cmd,输入"pip install pywin32",如果pywin32程序老旧,会提示你输入 "python -m pip install --upgrade pip"命令自动更新
-
利用python生成一个导出数据库的bat脚本文件的方法
实例如下: # 环境: python3.x def getExportDbSql(db, index): # 获取导出一个数据库实例的sql语句 sql = 'mysqldump -u%s -p%s -h%s -P%d --default-character-set=utf8 --databases mu_ins_s%s > %s.s%d.mu_ins_%d.sql' %(db['user'], db['pwd'], db['host'], db['port'], index, db['serv
-
Python 生成一个从0到n个数字的列表4种方法小结
我就废话不多说了,直接上代码吧! 第一种 def test1(): l = [] for i in range(1000): l = l + [i] 第二种(append ) def test2(): l = [] for i in range(1000): l.append(i) 第三种(列表推导式) def test3(): l = [i for i in range(1000)] 第四种(list ) def test4(): l = list(range(1000)) 以上这篇Pytho
-
python函数超时自动退出的实操方法
本章给大家在项目使用时候,常见的一种情况解决案例,即是当我们调用多个线程,使用了同一个函数去处理数据的时候,有些用函数已经处理完成,但是有些还没有,这就需要我们将任务进行分割,然后当一小部分任务执行后,退出来,另外没有执行的完成超时的就继续去执行,下面就针对遇到这些问题的小伙伴,给大家提供解决参考. 安装timeout-decorator库: pip3 install timeout-decorator 编写异常语句: @timeout_decorator.timeout(5, timeout_
-
Python生成MD5值的两种方法实例分析
本文实例讲述了Python生成MD5值的两种方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import datetime # NO.1 使用MD5 import md5 src = 'this is a md5 test.' m1 = md5.new() m1.update(src) print m1.hexdigest() 运行结果: 174b086fc6358db6154bd951a8947837 # -*- coding:utf-8 -*- # NO
-
python生成requirements.txt的两种方法
python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包? 使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本.这些问题,requirements.txt都可以解决! 生成requirements.txt,有两种方式: 第一种 适用于 单虚拟环境的情况: : pip freeze > requirements.txt 为什么只适用于单虚拟环境?因为这种方式,会将环境中的依赖包全都加入,如果使用的全局环境,则下载
-
Python生成8位随机字符串的方法分析
本文实例讲述了Python生成8位随机字符串的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import random import string #第一种方法 seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-" sa = [] for i in range(8): sa.a
-
用python生成1000个txt文件的方法
问题,用python生成如下所示的1000个txt文件? 解答: import os for i in range(0,1001): os.mknod("./a/%04d.txt"%i) 以上这篇用python生成1000个txt文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
随机推荐
- 如何编写TOP 10之类的排行榜?
- win2008 r2安装SQL SERVER 2008 R2 不能打开1433端口设置方法
- MYSQL的REPLACE和ON DUPLICATE KEY UPDATE语句介绍解决问题实例
- jQuery中get方法用法分析
- JavaScript中json对象和string对象之间相互转化
- Java判断字符串为空、字符串是否为数字
- go语言实现抓取高清图片
- ES6学习之变量的两种命名方法示例
- 详解Spring Boot Profiles 配置和使用
- jquery制作漂亮的弹出层提示消息特效
- Java8新特性之泛型的目标类型推断_动力节点Java学院整理
- 概述Java的struts2框架
- Android ListView滑动删除操作(SwipeListView)
- 使用代理模式来进行C#设计模式开发的基础教程
- div+CSS网页布局的意义与副作用原因小结第1/2页
- Android Okhttp请求查询购物车的实例代码
- ASP.NET Core应用错误处理之DeveloperExceptionPageMiddleware中间件呈现“开发者异常页面”
- Java 继承原理与用法实例分析
- 使用Spring安全表达式控制系统功能访问权限问题
- 浅谈Golang中创建一个简单的服务器的方法