Python进阶 迭代器

Python进阶 迭代器的使用

1.什么是“迭代”

迭代是访问集合元素的一种方式,能够通过for…in…方式遍历列表、元组、字典,依次拿到其中数据进行使用,这种方式称之为遍历,也叫迭代。

2.可迭代对象

能够被for…in… 遍历的对象称之为可迭代对象。
一个对象具备 iter()方法,就是可迭代对象。

3. 迭代器

对象中既定义了 __iter()方法有定义了__next()方法,就是迭代器。

4.迭代器与可迭代对象之间的关系

迭代器一定是可迭代对象,可迭代对象不一定是迭代器。

5. 迭代器的简单使用
#迭代器使用
class A(object):
    def __init__(self, list):
        self.list = list
        self.i = 0
 
    def __iter__(self):
        return self
 
    def __next__(self):
        self.i += 1
        print("i:%d,list读到第:%d" % (self.i, len(self.list)))
        if self.i == len(self.list):
            raise StopIteration
        return self.list[self.i]
 
 
a = [1, 2, 3, 4, 5]
iterA = A(a)
for temp in iterA:
    print(temp)
6.验证迭代器
from collections import Iterable, Iterator


# 迭代器使用
class A(object):
    def __init__(self, list):
        self.list = list
        self.i = 0

    def __iter__(self):
        return self

    # def __next__(self):
    #     self.i += 1
    #     print("i:%d,list读到第:%d" % (self.i, len(self.list)))
    #     if self.i == len(self.list):
    #         raise StopIteration
    #     return self.list[self.i]


a = [1, 2, 3, 4, 5]
iterA = A(a)

print(isinstance(iterA, Iterator))  # 判断是否是迭代器
print(isinstance(iterA, Iterable))  # 判断是否是可迭代对象

通过后两行的代码判断是否为迭代器,或是可迭代对象.

发布了8 篇原创文章 · 获赞 1 · 访问量 159

猜你喜欢

转载自blog.csdn.net/weixin_43762794/article/details/105369114