zoukankan      html  css  js  c++  java
  • Python【day 11】迭代器

    迭代器-用
    1、迭代器的概念
    1、可迭代对象-iterable
    str、list、tuple、dict、set、open()、range()
    2、可迭代对象的概念:
    其数据类型的执行方法中含有__iter__方法的,就是可迭代对象
    li1 = [2,3,4]
    print('__iter__' in dir(li1)) #True 说明li1-列表是可迭代对象
    3、迭代器的概念--iterator
    可迭代对象调用__iter__()方法后,生成的对象就是迭代器
    例如:it1 = li1.__iter__() #这里的it1就是迭代器
    4、迭代器中的方法__next__()
    迭代器每调用一次__next__()方法,就取值一个元素,直到取值到最后一个元素后
    再次调用__next__()方法,会报错StopIteration

    2、迭代器的特点
    1、节约内存
    2、惰性(只有调用__next__()方法,才会取值一次)
    3、只能往前取值,不能后退

    3、迭代器的应用
    1、for循环的常规写法
    for循环的内部原理是通过迭代器实现的
    迭代器给所有的可迭代的数据类型提供了一种统一的遍历方式(可迭代协议)
    li1 = [2,3,4]
    for i in li1:
    print(i)
    else:
    print('循环结束了')

    2、通过迭代器实现for循环--一步步执行__next__()
    li1 = [2,3,4]
    it1 = li1.__iter__() #it1就是生成可迭代对象-列表li1的迭代器-iterator
    print(it1.__next__()) #2
    print(it1.__next__()) #3
    print(it1.__next__()) #4
    # print(it1.__next__()) #报错 StopIteration

    3、通过迭代器实现for循环--通过while循环
    li1 = [2,3,4]
    it1 = li1.__iter__() #it1就是生成可迭代对象-列表li1的迭代器-iterator
    while 1:
    try:
    print(it1.__iter__())
    except StopIteration:
    print("循环结束了")
    break #别忘记,这里是跳出整个while循环
  • 相关阅读:
    这几个 IntelliJ IDEA 高级调试技巧,用了都说爽!
    SpringBoot:application.properties基本的参数配置
    SpringBoot:搭建第一个Web程序
    PO,VO,DAO,BO,POJO 之间的区别你懂吗?
    这篇文章太懂程序员了,扎心了
    委托和事件
    Log4net 封装用法
    js 在一个DIV前、中、后、插入新DIV
    关于装修
    JS查询class的名称
  • 原文地址:https://www.cnblogs.com/wangtp/p/11625349.html
Copyright © 2011-2022 走看看