zoukankan      html  css  js  c++  java
  • 迭代器

    可迭代对象:从语法形式上讲,内置有__iter__方法的对象都是可迭代对象,字符串,列表,元组,字典,集合,打开的文件都是可迭代对象

    1.迭代对象

    s={1,2,3,4,5}
    i = iter(s)   #本质就是在调用s.__iter__(),返回s的迭代器对象i
    next(i)   1
    next(i)   2
    next(i)   3
    ......
    

    2.for循环原理

    有了迭代器后,可以不依赖索引迭代值了,使用while循环的实现方式如下:

    goods = ['mac','lenovo','acer','dell']
    i=iter(goods)   每次都需要重新获取一个迭代对象
    while True:
    	try:
    		print(next(i))
    	except StopIteration:   #捕捉异常终止循环      
    		break
    
    

    for循环又称为迭代循环,in后可以跟任意可迭代对象,上述while循环可简写为:

    goods = ['mac','lenovo','acer','dell']
    for item in goods:
    	print(item)
    

    3.优缺点

    3.1优点

    为序列的非序列类型提供了一种统一的迭代取值方式

    3.2缺点

    除非取尽,否则无法获取迭代器的长度

    小结

    • 迭代器主要是为一些没有下标索引的对象提供的方法(迭代对象),给迭代对象增加了.__iter__方法,变成了迭代器。
    • while循环称为条件循环,for循环称为迭代器循环。
    • 字符串,列表,元组,集合。。。他们都是可迭代对象,但是不是迭代器对象(他们没有.__next__方法),但是打开的文件对象是迭代器,也是可迭代对象
  • 相关阅读:
    数据挖掘竞赛常用代码段
    东南大学《算法设计基础》课程作业 4
    东南大学《算法设计基础》课程作业 3
    东南大学《算法设计基础》课程作业 2
    东南大学《算法设计基础》课程作业 1
    shiro
    你好2021!
    关系型数据库索引设计与优化
    lua table面向对象扩展
    lua、python对比学习
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14354060.html
Copyright © 2011-2022 走看看