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远程登录代码
Apr 29 Python
python筛选出两个文件中重复行的方法
May 31 Python
Django实现表单验证
Sep 08 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
Python3.8中使用f-strings调试
May 22 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
python数据持久存储 pickle模块的基本使用方法解析
Aug 30 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
Python Django搭建文件下载服务器的实现
May 10 Python
Python多个MP4合成视频的实现方法
Jul 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实现斐波那契数列的简单写法
2014/07/19 PHP
php内嵌函数用法实例
2015/03/20 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
Python中__name__的使用实例
2015/04/14 Python
详解Python编程中time模块的使用
2015/11/20 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
python读写配置文件操作示例
2019/07/03 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
家佳咖啡店创业计划书
2013/12/27 职场文书
优秀企业获奖感言
2014/02/01 职场文书
领班岗位职责范文
2014/02/06 职场文书
优秀实习生感言
2014/03/01 职场文书
单位工作证明
2014/10/07 职场文书
四年级作文之说明文作文
2019/10/14 职场文书