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__方法),但是打开的文件对象是迭代器,也是可迭代对象
  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/xiaoxuanworking/p/14354060.html
Copyright © 2011-2022 走看看