Python可迭代对象操作示例


Posted in Python onMay 07, 2019

本文实例讲述了Python可迭代对象。分享给大家供大家参考,具体如下:

1、列表生成式

list = [result for x in range(m, n)]
g1 = (i for i in range(101))
print(type(g1))
print(g1)
print(g1.__next__())

输出:

<class 'generator'>
<generator object <genexpr> at 0x0000024E6AC08F10>
0

g1 = (i for i in range(11))
list1 = [i for i in g1]
print(list1)

输出:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

2、可迭代对象

①.可以直接作用于for循环的对象统称为可迭代对象,我们称之为:Iterator

②.我们可以使用isintance()判断一个对象是否是Iterator对象

③.可以直接作用于for循环的数据类型有以下几种

a.集合数据类型:如list、tuple、dict、set和string
b.生成器(generator):就是一个能返回迭代器的函数,其实就是定义一个迭代算法,可以理解为一个特殊的迭代器。

生成器:

通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,如果我们仅仅需要访问前面几个元素,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)

要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。

g1 = (i for i in range(11))
print(g1)
for i in range(11):
  print(next(g1),end='\t')

输出:

<generator object <genexpr> at 0x00000207F5C69678>
0   1   2   3   4   5   6   7   8   9   10 

注意:使用Iterator判断的时候需要导入Iterable的包

from collections import Iterable
print(isinstance([],Iterable))
print(isinstance((),Iterable))
print(isinstance("",Iterable))
print(isinstance({},Iterable))
print(isinstance({1,2,3},Iterable))
print({1,2,3})
print(isinstance(1,Iterable))
print(isinstance(1.2,Iterable))
g1 = (i for i in range(101))
print(isinstance(g1,Iterable))

输出:

True
True
True
True
True
{1, 2, 3}
False
False
True

3、迭代器

迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,

直到最后出现StopIteration错误,表示无法返回下一个值

可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator对象)

可以使用isinstance()函数判断一个对象是否是Iterator对象。

注意:可迭代对象不一定是迭代器,但是迭代器一定是迭代对象。

可迭代对象与迭代器的关系:

可迭代对象包含迭代器

from collections import Iterator
print(isinstance([],Iterator))
print(isinstance((),Iterator))
print(isinstance("",Iterator))
print(isinstance({},Iterator))
print(isinstance({1,2,3},Iterator))
print({1,2,3})
print(isinstance(1,Iterator))
print(isinstance(1.2,Iterator))
g1 = (i for i in range(101))
print(isinstance(g1,Iterator))

输出:

False
False
False
False
False
{1, 2, 3}
False
False
True

4、 Iterator转换

可以通过Iter()函数将list、tuple、dict、string转换为Iterator对象。

from collections import Iterator
list1 = [i for i in range(11)]
print(isinstance(list1,Iterator))
iter1 = iter(list1)
print(isinstance(iter1,Iterator))
for i in range(11):
  print(next(iter1),end='\t')

输出:

False
True
0   1   2   3   4   5   6   7   8   9   10 

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

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

Python 相关文章推荐
Python实现截屏的函数
Jul 26 Python
Python使用gensim计算文档相似性
Apr 10 Python
完美解决Python2操作中文名文件乱码的问题
Jan 04 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
Django 缓存配置Redis使用详解
Jul 23 Python
python实现tail -f 功能
Jan 17 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
使用Python获取字典键对应值的方法
Apr 26 Python
python实现支付宝转账接口
May 07 #Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 #Python
python验证身份证信息实例代码
May 06 #Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 #Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 #Python
Python两台电脑实现TCP通信的方法示例
May 06 #Python
python3利用Socket实现通信的方法示例
May 06 #Python
You might like
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
服务器安全设置的几个注册表设置
2007/07/28 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
js 省地市级联选择
2010/02/07 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
python实现按任意键继续执行程序
2016/12/30 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
精油和天然健康美容产品:Art Naturals
2018/01/27 全球购物
大学生个人自荐信
2014/02/24 职场文书
企业形象策划方案
2014/05/29 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
python tkinter实现定时关机
2021/04/21 Python