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

    迭代器

    1  什么是迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值

    2  为什么要有迭代器:

    对于序列类型:str list tuple可以依赖索引 进行迭代取值   但是对于dict和set,文件  Python必须提供不依赖于索引的迭代

    取值方式;因而被称之为迭代器

    3      可迭代的对象

    obje.__iter__

     针对只要含有内置方法__iter__ 就是可迭代的对象

    name='cisco'
    name.__iter__()
    <str_iterator object at 0x02F56030>

    4迭代器对象  同时有以下2种方法

    obj.__iter__

    obj.__next__

    f=open('a.txt','r',encoding='utf-8')
    f.__next__
    f.__iter__


    总结:
    1 可迭代对象不一定是迭代器对象
    2 迭代器对象一定是可迭代对象




    调用__iter__() 方法 得到的是迭代器对象 将原先可迭代对象变成迭代器对象
    其实此处严格意义上说,只要可以有__iter__方法就可以变成迭代器对象


    d={'key1':'value1','key2':'value2'}
    d_iter=d.__iter__()
    d_iter2=d_iter.__iter__()
    d_iter3=d_iter.__next__


    针对字典取key
    d={'key1':'value1','key2':'value2'}
    d_iter=d.__iter__()
    print(d_iter.__next__())
    print(d_iter.__next__())
    d.__iter()=iter(d)

    调用__next__() 方法    等价于d.__next__()=next(d)


    迭代器举例代码


    d={'key1':'value1','key2':'value2','key3':'value3'}
    d_iter=iter(d)
    while True:
        try:
            print(next(d_iter))
        except StopIteration:
            break
    print('===========>')
    print('===========>')
    print('===========>')
    
    
    
    
    

    for循环详解

    d={'key1':'value1','key2':'value2','key3':'value3'}

    迭代器的优缺点:
    提供一种统一的,不依赖索引的取值方式,为for循环提供依据


  • 相关阅读:
    jquery 只能输入汉字
    实现鼠标移到某个对象,在旁边显示层。
    jquery 清空页面中radio选项
    oracle 删除表中重复的数据
    jQuery 获取屏幕高度、宽度
    jquery清空from表单中的所有数据
    oracle sql语句大全
    mysql sql语句大全
    Java精品书籍推荐
    小萌库
  • 原文地址:https://www.cnblogs.com/nodchen/p/8746689.html
Copyright © 2011-2022 走看看