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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
python实现按任意键继续执行程序
Dec 30 Python
python中logging包的使用总结
Feb 28 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
python实现QQ邮箱发送邮件
Mar 06 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
Python爬虫之Selenium实现窗口截图
Dec 04 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将向Java靠拢
2006/10/09 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
javascript 常用功能总结
2012/03/18 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
浅析Python 条件控制语句
2020/07/15 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
如何进行有效的自我评价
2013/09/27 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
保安岗位职责
2014/02/21 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2015党建工作简报
2015/07/21 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
志愿者工作心得体会
2016/01/15 职场文书
python 中的jieba分词库
2021/11/23 Python