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 相关文章推荐
windows上安装Anaconda和python的教程详解
Mar 28 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
Python制作词云的方法
Jan 03 Python
对python制作自己的数据集实例讲解
Dec 12 Python
对python实现合并两个排序链表的方法详解
Jan 23 Python
Python3标准库总结
Feb 19 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
浅析Python面向对象编程
Jul 10 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 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
中国的第一台收音机
2021/03/01 无线电
php读取数据库信息的几种方法
2008/05/24 PHP
php 分库分表hash算法
2009/11/12 PHP
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
php中使用临时表查询数据的一个例子
2013/02/03 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
php获取url参数方法总结
2014/11/13 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
python分割和拼接字符串
2013/11/01 Python
Python性能优化技巧
2015/03/09 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
暑假实习求职信范文
2013/09/22 职场文书
中专自我鉴定范文
2013/10/16 职场文书
读书活动实施方案
2014/03/10 职场文书
计算机专业自荐信
2014/05/24 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
同意离婚答辩状
2015/05/22 职场文书
讲座新闻稿
2015/07/18 职场文书
Python破解极验滑动验证码详细步骤
2021/05/21 Python
windows server2016安装oracle 11g的图文教程
2022/07/15 Servers