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

    迭代器

    一、什么是迭代

    迭代迭代更新换代, 重复, 基于上一次的结果推出下一次的结果

    二、可迭代对象

    具有__iter__()方法的就是可迭代对象,除数字类型和函数类型都是可迭代对象

    x = 1  # 不可迭代对象
    s = 'jiayi'  # 可迭代对象
    lt = [1, 2, 3]  # 可迭代对象
    dic = {'a': 1, 'b': 2}  # 可迭代对象
    tup = (1,)  # 元组只有一个元素必须得加逗号# 可迭代对象
    se = {1, 2, 3}  # 可迭代对象
    f = open('time.py')  # 可迭代对象
    

    eg:

    s = 'jiayi'
    s_iter = s.__iter__()  #将它变为迭代器对象
    print(s_iter.__next__())  #基于索引(基于上一次结果),通过__next__进行迭代
    print(s_iter.__next__())
    print(s_iter.__next__())
    print(s_iter.__next__())
    print(s_iter.__next__())
    --------------------------------------------------------------
    j
    i
    a
    y
    i
    

    二、迭代器对象

    具有__iter__()方法并且具有__next__()的就是迭代器对象,只有文件是迭代器对象

    s = 'jiayi'  # 可迭代对象,不属于迭代器对象
    lt = [1, 2, 3]  # 可迭代对象,不属于迭代器对象
    dic = {'a': 1, 'b': 2}  # 可迭代对象,不属于迭代器对象
    tup = (1,)  # 元组只有一个元素必须得加逗号# 可迭代对象,不属于迭代器对象
    se = {1, 2, 3}  # 可迭代对象,不属于迭代器对象
    f = open('time.py')  # 可迭代对象,迭代器对象
    

    三、for循环原理(迭代循环)

    先举个例子(上下代码其实就是一个东西)

    list = [1,2,3]
    list_iter = list.__iter__()  #将它变为迭代器对象
    while 1:
        try:
            print(list_iter.__next__())
        except StopIteration:  #对他进行异常捕捉
            break
            
    ============================================================
    for i in lt:    # 不依赖索引取值,而是迭代取值
        print(i)
        
        '''
    1. 把lt(可迭代对象/迭代器对象)用__iter__方法转换成迭代器对象
    2. 使用__next__取出迭代器里的所有值
    3. 使用__next__方法取尽迭代器中的所有值,一定会报错,通过异常捕捉退出while循环
        '''
    

    可迭代对象无论迭代多少次,他的内存地址是不变的

    迭代器对象一定是可迭代对象; 可迭代对象不一定是迭代器对象

  • 相关阅读:
    变分自编码器(Variational Autoencoder, VAE)通俗教程
    神经网络图灵机(Neural Turing Machines, NTM)
    【Java设计模式】单例模式
    SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离
    eclipse项目导入androidstudio
    LiveWriter Test
    【Android学习】XML文本的三种解析方式(通过搭建本地的Web项目提供XML文件)
    【百度地图学习-一】初始化以及TextOverlay
    【Android学习】四种布局方式
    【Android学习】数据传递三种方式
  • 原文地址:https://www.cnblogs.com/yanjiayi098-001/p/11340728.html
Copyright © 2011-2022 走看看