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微信防封(深入学习微信网址链接解封的防封原理visit_type)
- python6个基础数据类型(计算机二级python学习教程3 python语言基本数据类型)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- python异常信息处理(Python使用修饰器进行异常日志记录操作示例)
- python将字符串转换为时间格式(Python时间和字符串转换操作实例分析)
- 怎么用python分析足球(使用Python进行体育竞技分析预测球队成绩)
- python零基础实战项目(十个Python练手的实战项目,学会这些Python就基本没问题了推荐)
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- python爬虫爬取知乎(详解用python写网络爬虫-爬取新浪微博评论)
- python处理tcp包(Python3使用TCP编写一个简易的文件下载器功能)
- opencv 图像匹配python(OpenCV+Python识别车牌和字符分割的实现)
- python模块使用方法(详解python的argpare和click模块小结)
- pythonhtml文件转换成pdf库(Python3转换html到pdf的不同解决方案)
- python装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- python符串操作教程(Python3.5运算符操作实例详解)
- python实现删除列表重复元素功能(Python实现删除排序数组中重复项的两种方法示例)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
- 春节放假几天(春节放假几天2023法定几天)
- 今天 3月13日,31年前,一个英雄少年感动了中国(今天3月13日31年前)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9