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计算程序运行时间的方法
Dec 13 Python
快速实现基于Python的微信聊天机器人示例代码
Mar 03 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
python实现两个dict合并与计算操作示例
Jul 01 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
Jul 31 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
Django解决frame拒绝问题的方法
Dec 18 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 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
PHP Memcached应用实现代码
2010/02/08 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python分割和拼接字符串
2013/11/01 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
团组织关系介绍信
2014/01/12 职场文书
机关财务管理制度
2014/01/17 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
工程材料采购方案
2014/05/18 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
2015年母亲节寄语
2015/03/23 职场文书
农村党员干部承诺书
2015/05/04 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
信息技术研修心得体会
2016/01/08 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Python多线程 Queue 模块常见用法
2021/07/04 Python