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学习笔记之常用函数及说明
May 23 Python
使用Python实现下载网易云音乐的高清MV
Mar 16 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
Python获取任意xml节点值的方法
May 05 Python
python 内置函数filter
Jun 01 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
解决Python二维数组赋值问题
Nov 28 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
详解python logging日志传输
Jul 01 Python
Python学习之异常中的finally使用详解
Mar 16 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的FTP学习(三)
2006/10/09 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
Python是如何进行类型转换的
2013/06/09 面试题
《翻越远方的大山》教学反思
2014/04/13 职场文书
服务口号大全
2014/06/11 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript
MySQL 数据库范式化设计理论
2022/04/22 MySQL