zoukankan      html  css  js  c++  java
  • day14 Pyhton学习

    一.迭代器-概念

      可迭代协议:内部含有__iter__方法的值/变量都是可迭代的

      如何得到一个迭代器:可迭代变量.__iter__()返回一个迭代器

      迭代器协议:内部含有__iter__方法和__next__方法的值/变量都是迭代器

      迭代器的特点:节省内存,惰性运算,一次性取值,只能按顺序取

      可迭代和迭代器的关系:

         所有的迭代器都是可迭代的,反之不成立

         迭代器是特殊的存在

      for循环和迭代器的关系:

         无论是可迭代的还是迭代器都是可以被for循环

         如果直接循环迭代器,那么循环一次就没有了

         如果循环的非迭代器,那么每一次循环都相当于从头到尾的循环

          因为在for循环中的所有非迭代器都会通过iter生成一个新的迭代器

    l = [1,2,3,4]
    res1 = l.__iter__()
    res2 = l.__iter__()
    # res1和res2都是迭代器
    # 是两个完全不同的迭代器
    用while循环实现一个for循环的功能(循环list/dict)
    # l = [1,2,3,5,6,7,12,23,412]
    # l_iter = l.__iter__()
    # while True:
    #     try:   # 要保护的代码
    #         print(l_iter.__next__())
    #     except StopIteration:  # 要保护的代码中一旦出现了StopIteration错误,程序不报错,直接执行break
    #         print('报错啦')
    #     break

        

  • 相关阅读:
    Nhibernate 简单实例(一)
    Sql 行转列
    EasyUI TreeGrid 的使用
    MSMQ消息队列的简单使用
    实体类与DataTable互换
    给Config的appSettings节点赋值
    Angular js (2)
    Angular JS 入门
    用Aspose.Cells 导出为自定义格式的excel
    【多线程学习笔记整理】002_线程的停止、暂停、与yield
  • 原文地址:https://www.cnblogs.com/pythonz/p/9911658.html
Copyright © 2011-2022 走看看