【python实用特性】- 迭代、可迭代对象、迭代器

在我们学过的算法课程中,时常会提到迭代一词。算法中的迭代,指已知一个初始值,再根据一定的规律进行计算,得到下一个值的过程。而在编程中,我们也经常用到它,那就是循环。

1、迭代

实例,遍历一个列表

L = ['jc','xf','xbz','xdg']
for i in L:
    print(i,end='\t')

输出:jc xf xbz xdg

如上,我们循环打印了一个列表,这个过程,就叫做迭代。
简而言之,迭代就是循环遍历可迭代对象的过程。

2、可迭代对象
  • 定义
    在python中,迭代是通过 for....in(可迭代对象)来实现的,而在上面的例子中,我们使用for…in 遍历了一个列表,所以列表就是一个可迭代对象。即能使用for…in 来遍历的对象叫做可迭代对象
  • 如何判断一个对象是否是可迭代对象?
    在不明确对象类型的时候,为了避免迭代报错,我们需要先判断是否是迭代对象,这可以借助Iterable模块实现。
from typing import Iterable 

L = ['jc','xf','xbz','xdg']

print(isinstance(L,Iterable))

输出:True
isinstance: 判断一个对象是否是某个类的实例,是则返回True,否则返回 False。

3、迭代器

个人理解:能使用next(iterator)依次取值的对象。

  • 使用流程
    (1) 使用iter(iterable/可迭代对象)函数从一个可迭代对象得到一个迭代器。
    (2) 通过next(iterator/迭代器)从迭代器中依次取值。

  • 实例

    L = ['jc','xf','xbz','xdg']
    iter_tool = iter(L) #得到迭代器
    print(next(iter_tool))
    print(next(iter_tool))
    print(next(iter_tool))
    print(next(iter_tool))
    print(next(iter_tool))
    

    输出:
    输出

  • 解决StopIteration异常
    上面的实例中,因为只有4个元素,写了5次next()取值,所以报了StopIteration异常,这时我们可以使用try...except来处理。
    改进如下:

    L = ['jc','xf','xbz','xdg']
    iter_tool = iter(L) #得到迭代器
    while True:
        try:
            print(next(iter_tool))
        except StopIteration:
            break  #跳出while循环
    

参考文章:
[1] zsj.python之路——python之迭代器(iterator)详解

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值