如何在Python中操作可迭代对象

这期内容当中小编将会给大家带来有关如何在Python中操作可迭代对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1、列表生成式

如何在Python中操作可迭代对象

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中操作可迭代对象了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注恰卡编程网行业资讯频道。

发布于 2021-04-15 01:56:01
收藏
分享
海报
0 条评论
177
上一篇:怎么在python3中利用Socket实现通信 下一篇:怎么在php中使用mysqli和pdo扩展
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码