栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python迭代器相关方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python迭代器相关方法

iter、next

首先最主要的有两个方法,生成迭代器iter(),执行迭代next()。iter生成迭代器会记下每次执行后的位置,而next会根据此位置继续执行

凡是可迭代对象,如字典、列表、元组、字符串···都可以使用iter来生成迭代器,其返回类型为iteration。其中,若对字典进行iter,则会将其键生成迭代器,如下:

In [16]: dic={'a':1,'b':2,'c':3}
In [17]: A=iter(dic)
In [18]: type(A)
Out[18]: dict_keyiterator

In [19]: next(A)
Out[19]: 'a'

In [21]: next(A)
Out[21]: 'b'

In [22]: next(A)
Out[22]: 'c'

也可以用循环体对迭代对象进行输出

In [24]: dic={'a':1,'b':2,'c':3}

In [25]: B=iter(dic)

In [26]: for i in B:
    ...:     print(i)
    ...:
a
b
c
迭代器生成式
In [27]: C=(i for i in [1,2,3,4,5,6])

In [28]: type(C)
Out[28]: generator

In [29]: next(C)
Out[29]: 1

In [30]: next(C)
Out[30]: 2

类似列表生成式,只需将[]换为()即可

魔术方法及stopinteration

为了防止迭代对象一直进行迭代,可以使用stopinteration来终止迭代

class Interation():
    def __iter__(self):
        self.a=0
        return self
    def __next__(self):
        if self.a<5:
            self.a+=1
            return self.a
        else:
            raise StopIteration

A=Interation()
print(A)
B=iter(A)
print(B)
while True:
    print(next(B))
<__main__.Interation object at 0x0000020953D2C910>
<__main__.Interation object at 0x0000020953D2C910>
1
2
3
4
5
yeild

在函数中,将return修改为yeild,也可生成一个迭代对象

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/982882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号