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转换摩斯密码示例
Feb 16 Python
Python选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
常见的python正则用法实例讲解
Jun 21 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
python实现员工管理系统
Jan 11 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
基于pandas向csv添加新的行和列
May 25 Python
python右对齐的实例方法
Jul 05 Python
Python实现简单猜数字游戏
Feb 03 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 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
微信小程序tabBar用法实例详解
2017/12/04 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
护理自我鉴定范文
2013/10/06 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
厨房管理计划书
2014/04/27 职场文书
材料化学专业求职信
2014/07/15 职场文书
授权委托书怎么写
2014/09/25 职场文书
小浪底导游词
2015/02/12 职场文书
党员转正意见怎么写
2015/06/03 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP