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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
python判断windows系统是32位还是64位的方法
May 11 Python
在Python的Django框架中编写错误提示页面
Jul 22 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
通过实例了解python property属性
Nov 01 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
python调用私有属性的方法总结
Jul 24 Python
python爬取抖音视频的实例分析
Jan 19 Python
python中取整数的几种方法
Nov 07 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 Python
python神经网络学习 使用Keras进行简单分类
May 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 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP7.0版本备注
2015/07/23 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
浅谈django的render函数的参数问题
2018/10/16 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python的log日志功能及设置方法
2019/07/11 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python读写Excel表格的方法
2021/03/02 Python
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
《落花生》教学反思
2014/02/25 职场文书
企业宣传稿范文
2015/07/23 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server