迭代器

迭代器(lterator)

什么是迭代?

迭代是访问集合元素的一种方式,简单的来说:就是一种取数据的一种方式,在上一个基础上取下一个

可迭代对象

想要了解什么是迭代器之前必须要先了解什么是可迭代对象。

通俗的认为:只要可以通过for in 的形式呢进行遍历的,那么这个数据类型就是可以迭代的,可以迭代的数据类型有列表、元组、字典、字符串,不可迭代类型有数字类型、布尔类型、浮点型。

不是所有的数据类型都可以放到for循环语句中,然后让for循环每次从中取出一条数据供我们使用!

判断一个实例化对象是否可以迭代

导入lterable类: 它是一个类,所有可迭代数据都是它实例化对象(可迭代对象)

运用isinstance方法来判断是不是一个类得得实例化对象(判断一个数据是否可迭代)

运行结果会返回一组布尔值

# 导入Iterable
from collections.abc import Iterable

# isinstance(要判断的对象, Iterable)
print(isinstance([1, 2, 3], Iterable))  # True

什么是迭代器呢?

迭代器:是访问可迭代对象的工具,简单的理解:可以用for循环依次取数据的“特殊对象”。

作用:迭代器是一个可以记住遍历的位置的对象。(迭代器对象从集合的第一个元素开始访问,直到所有元素被访问完结束。ps:迭代器只能往前不能后退)。

如何获取一个迭代器

iter(iterable)方法:从可迭代对象中返回一个迭代器,这里的iterable必须是能提供一个迭代器的对象。

获取迭代器里面的数据

next(iterator):从迭代器iterator中获取下一条记录,如果无法获取下一条记录,则触发stoptrerator异常。(注意:next一次只能获取一条数据)

在这里插入图片描述

自定义一个可迭代的对象

我们知道在一个普通class定义的对象是不能使用for的,那怎样让它可以使用for呢?要保证它是迭代器即可。

只要在类中定义定义2个特殊的魔法方法。

  • __iter __:只要在类中创建出来的对象,一定是可迭代的对象(简单理解:只要对象里具备了__iter __方法,就是可迭代对象)
  • __next __ :通过__iter __标志识别这是一个可迭代的类,继而自动调动__next__方法
    注意:一个实现类 iter方法和next方法的对象,就是一个迭代器

小总结

  • 普通的对象没有可以直接用for循环变量的功能
  • 如果想要一个对象可以用for ,那么就需要让它变成迭代
  • 一个类创建对象想要成为迭代器对象,需要两个魔法方法(__iter __, __next __ )。
  • __next __返回真正的数据

这是小编第一章博客,也是小编第一次写博客,博客里面有些写的不够好地方和有误的地方也希望大家评论指出来,让小编做得更好!谢谢你们啦!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值