Python迭代器与生成器基本用法分析


Posted in Python onJuly 26, 2018

本文实例讲述了Python迭代器与生成器基本用法。分享给大家供大家参考,具体如下:

迭代器

可以进行for循环的数据类型包括以下两种:

1. 集合数据类型比如listtupledictstr

2. 另一种是生成器

而他们都是可迭代对象,称为Iterable

Isinstandce()可以用来判断对象是否为可迭代对象

>>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> isinstance('abc', Iterable)
True
>>> isinstance((x for x in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False

然后,只有生成器可以称为迭代器,因为他们是不断使用next()函数返回值的,属于惰性计算,而对于迭代器也有一个判断函数

>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False

生成器

生成器:就是未循环完的列表,这是为了节约电脑内存,设立的一种一边循环一边计算的机制。

创建的方法也是很简单,其中一种就是把列表生成式的[]改成()就可以了

而调用的时候也一般不用麻烦的next()的方法,而是用for循环来遍历

比如:

g= (x*x for x in range(10))
for n in g:
 print(n)

这样就能遍历出所有的生成器中的元素

另一种生成器的方法:如果函数中包含有yield关键字,则这是一个生成器

def odd():
  print('step 1')
  yield 1
  print('step 2')
  yield(3)
  print('step 3')
  yield(5)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python生成日历实例解析
Aug 21 Python
python使用点操作符访问字典(dict)数据的方法
Mar 16 Python
python插入排序算法实例分析
Jul 03 Python
python基础教程之五种数据类型详解
Jan 12 Python
django1.11.1 models 数据库同步方法
May 30 Python
Python从单元素字典中获取key和value的实例
Dec 31 Python
详解python中的index函数用法
Aug 06 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
Python Web静态服务器非堵塞模式实现方法示例
Nov 21 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
用Python爬虫破解滑动验证码的案例解析
May 06 Python
python全面解析接口返回数据
Feb 12 Python
Python实现矩阵相乘的三种方法小结
Jul 26 #Python
python实现泊松图像融合
Jul 26 #Python
python中的decorator的作用详解
Jul 26 #Python
python opencv实现旋转矩形框裁减功能
Jul 25 #Python
Python3匿名函数用法示例
Jul 25 #Python
Python实现动态添加属性和方法操作示例
Jul 25 #Python
利用pandas读取中文数据集的方法
Jul 25 #Python
You might like
php中解析带中文字符的url函数分享
2015/01/20 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
短信提示使用 特效
2007/01/19 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
jQuery实现的仿select功能代码
2015/08/19 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
查看Django和flask版本的方法
2018/05/14 Python
详解python编译器和解释器的区别
2019/06/24 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
Python的log日志功能及设置方法
2019/07/11 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
群众路线党课主持词
2014/04/01 职场文书
娱乐节目策划方案
2014/06/10 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
六年级语文教学反思
2016/03/03 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏