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中使用异步Socket编程性能测试
Jun 25 Python
python实现简单ftp客户端的方法
Jun 28 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
简单介绍Python中的几种数据类型
Jan 02 Python
Python实现的质因式分解算法示例
May 03 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
python+pyqt5编写md5生成器
Mar 18 Python
python中的函数递归和迭代原理解析
Nov 14 Python
浅析python中while循环和for循环
Nov 19 Python
python函数定义和调用过程详解
Feb 09 Python
sklearn+python:线性回归案例
Feb 24 Python
Python初学者必备的文件读写指南
Jun 23 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
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python代码调试的几种方法总结
2015/04/15 Python
python编写爬虫小程序
2015/05/14 Python
Python3遍历目录树实现方法
2015/05/22 Python
常用python编程模板汇总
2016/02/12 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
python 读取、写入txt文件的示例
2020/09/27 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
各营销点岗位职责范本
2014/03/05 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
会计人员岗位职责
2015/02/03 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android