迭代器

可迭代对象

什么是可迭代对象,就是在每次需要一个新值是,需要基于上一个值的答案,这就是可迭代对象。

在python中,只要能点出来__iter__()的都是可迭代对象,所以由上可知,可迭代对象有:"str, list, dict, set,  tuple,  file。 

迭代器对象

什么是迭代器对象,就是在可迭代对象的基础上能点出来__next__()以及能直接点出来的就是可迭代对象。总结以上话,就只能直接或者间接用__next__()的就是迭代器对象。

迭代器的具体用法:迭代器的取值提供了不依赖于索引取值的方法。例如

l = ['bxf', 'zt', 'cx']
list = iter(l)
print(list.__next__())
print(list.__next__())
print(list.__next__())

而在字典中,用迭代器取出来的是key值。

for循环基本原理

for循环的基本原理就是参照了迭代器取值的原理,所以在for循环in后面的必须是一个可迭代对象。他会跟迭代器取值一样,依次把值给提取出来。

 

我们都知道,在for循环能实现的,在while循环都可以实现,那么在for循环中循环一个列表,我们也没有加入一个限制值,为什么在while循环中会报错,在for循环中不会报错呢?

在python中,for循环底层加入了一个异常捕捉功能,他会将for循环中的异常捕捉并且提取出来,从而不会报错,在while循环中,如果我们也加入一个异常捕捉,那么在while循环中我们及时不限制一个值,他也能跟for循环现实出一个一样的答案,同时不会报错

s = ['bxf', 'cx', 'zt']
c= 0
try :
    while True:
        c+=1
        print(s[c])
except Exception as e:
    print(e)

 

posted @   shangxin_bai  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示