python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python  Iterator

Python 迭代器Iterator详情

作者:​ 盆友圈的小可爱   ​

这篇文章主要介绍了Python 迭代器Iterator详情,迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据,下文关于其详细介绍,需要的小伙伴可以参考一下

前言

当我们需要对列表(list)、元组(tuple)、字典(dictionary)和集合(set)的元素进行遍历时,其实Python内部都是启动迭代器来完成操作的。

迭代器(Iterator)并非Python独有的,在C++和Java中也出现了此概念。迭代器可以帮助我们解决面对复杂的数据场景时,快速简便的获取数据

1. 什么是迭代器?

2. 迭代器类型

3. 迭代器分类

容器迭代器

data = [1,2,3,4]
it = iter(data)
print(next(it))
print(next(it))

遍历迭代器

for i in it:
    print(i)

对于可迭代对象,我们也可以使用for...in来进行迭代

自定义迭代器

class Myiter:
    def __init__(self,times):
        self.times = times
    def __iter__(self):
        self.n = 0
        return self
    def __next__(self):
        if self.n <= self.times:
           result = 3 ** self.n
            self.n += 1
            return result
        else:
            raise StopIteration
data = Myiter(4)
it = iter(data)
# 第1次
print(next(it))
# 第2次
print(next(it))
# 第3次
print(next(it))
# 第4次
print(next(it))
# 第5次
print(next(it))
# 第6次,超出范围触发StopIteration
print(next(it))
...
1
3
9
27
81
Traceback (most recent call last):
  File "E:\workspace\uiat\cookbooks\tester.py", line 67, in <module>
    print(next(it))
  File "E:\workspace\uiat\cookbooks\tester.py", line 51, in __next__
    raise StopIteration
StopIteration
...

总结

本期,我们对Python Iterator迭代器由__iter__()方法和__next__()方法组成。迭代器分为Iterator和iteratable两种,因此迭代器本身也是可迭代对象的。

迭代器分为容器迭代和自定义迭代。

到此这篇关于Python 迭代器Iterator详情的文章就介绍到这了,更多相关Python Iterator内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文