如何在Python中操作可迭代对象
这期内容当中小编将会给大家带来有关如何在Python中操作可迭代对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、列表生成式
list=[resultforxinrange(m,n)] g1=(iforiinrange(101)) print(type(g1)) print(g1) print(g1.__next__())
输出:
<class 'generator'><generator object <genexpr> at 0x0000024E6AC08F10>0
g1=(iforiinrange(11)) list1=[iforiing1] 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=(iforiinrange(11)) print(g1) foriinrange(11): print(next(g1),end='\t')
输出:
<generator object <genexpr> at 0x00000207F5C69678>0 1 2 3 4 5 6 7 8 9 10
注意:使用Iterator判断的时候需要导入Iterable的包
fromcollectionsimportIterable 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=(iforiinrange(101)) print(isinstance(g1,Iterable))
输出:
TrueTrueTrueTrueTrue{1, 2, 3}FalseFalseTrue
3、迭代器
迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,
直到最后出现StopIteration错误,表示无法返回下一个值
可以被next()
函数调用并不断返回下一个值的对象称为迭代器(Iterator对象)
可以使用isinstance()函数判断一个对象是否是Iterator对象。
注意:可迭代对象不一定是迭代器,但是迭代器一定是迭代对象。
可迭代对象与迭代器的关系:
可迭代对象包含迭代器
fromcollectionsimportIterator 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=(iforiinrange(101)) print(isinstance(g1,Iterator))
输出:
FalseFalseFalseFalseFalse{1, 2, 3}FalseFalseTrue
4、 Iterator转换
可以通过Iter()
函数将list、tuple、dict、string转换为Iterator对象。
fromcollectionsimportIterator list1=[iforiinrange(11)] print(isinstance(list1,Iterator)) iter1=iter(list1) print(isinstance(iter1,Iterator)) foriinrange(11): print(next(iter1),end='\t')
输出:
FalseTrue0 1 2 3 4 5 6 7 8 9 10
上述就是小编为大家分享的如何在Python中操作可迭代对象了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...