python迭代列表解析(Python可迭代对象操作示例)
python迭代列表解析
Python可迭代对象操作示例本文实例讲述了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程序设计有所帮助。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80077471
- python单例编程(浅谈Python反射 & 单例模式)
- python中如何限制数字的个数(python 处理数字,把大于上限的数字置零实现方法)
- python制作彩色字符(Python3利用print输出带颜色的彩色字体示例代码)
- python编写计算机病毒教程(Python告诉你木马程序的键盘记录原理)
- python整型可以用什么表示(实例介绍Python中整型)
- python抓取天气数据(Python实战之制作天气查询软件)
- python里面的print怎么用(python中的print输出)
- python抖音视频收集(python制作抖音代码舞)
- python好看图案(python实现趣味图片字符化)
- 12步轻松搞定python装饰器(Python3.5装饰器典型案例分析)
- python函数大全详细(详解Python函数式编程—高阶函数)
- python3正则表达式详解(Python正则表达式和re库知识点总结)
- python列表和条件组合的处理(一篇文章带你弄懂Python基础之列表相关操作和嵌套)
- python语句for循环(Python基础之循环语句用法示例for、while循环)
- 在python中导入模块有哪几种方式(Python不同目录间进行模块调用的实现方法)
- python3的循环怎么用(对Python3 goto 语句的使用方法详解)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
热门推荐
- rabbitmq延迟队列原理(Rabbitmq heartbea心跳检测机制原理解析)
- mysql定期备份(Mysql5.7定时备份的实现)
- nginx跨域怎么用(如何利用map实现Nginx允许多个域名跨域)
- vmware esxi搭建云桌面(VMware ESXI服务器虚拟化搭建集群)
- 小程序实现购物车功能前后端代码(小程序实现购物车完整版)
- phpinclude的使用方法(PHP defined函数的使用图文详解)
- phpstudy怎么升级mysql(phpStudy中升级MySQL版本到5.7.17的方法步骤)
- mysqlmha架构图(MySQL之MHA高可用配置及故障切换实现详细部署步骤)
- cssflex布局案例(CSS Flexbox的具体用法详解)
- python数值基本运算方法(Python常见数字运算操作实例小结)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9