• python3 之 迭代器与生成器 Be


    迭代器

      迭代是Python最强大的功能之一,是访问集合元素的一种方式。
      迭代器是一个可以记住遍历的位置的对象。
      迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束。
      迭代器只能往前不会后退
      迭代器有两个基本的方法:iter() 和 next()

    1. 字符串、列表或元祖对象都可用于创建迭代器:
      1 list = [1,2,3,4]
      2 it = iter(list)     #创建迭代器对象
      3 print(next(it))     #输出迭代器的下一个元素  1
      4 print(next(it))     #2
      5 print(next(it))     #3
      6 print(next(it))     #4
    2. 迭代器对象可以使用常规for语句进行遍历:
      1 list = [1,2,3,4]
      2 it = iter(list)     #创建迭代器
      3 for x in it:
      4     print(x,end=' ')   #1 2 3 4
    3.  也可以使用next()函数:

       1 import sys
       2 
       3 list = [1,2,3,4]
       4 it = iter(list)     #创建迭代器对象
       5 
       6 while True:
       7     try:
       8         print(next(it),end=' ')
       9     except StopIteration:
      10         sys.exit()
      11 # 1 2 3 4

    生成器

      在python中,使用了yield的函数被称为生成器(generator)。
      跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单的理解:生成器就是迭代器。
      在调用生成器运行的过程中,每次遇到yield时,函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时,从当前位置继续执行。
      调用一个生成器函数,返回的是一个迭代器对象。  

    1. 字符串、列表或元祖对象都可用于创建迭代器:
       1 import sys
       2 
       3 def fibonacci(n):       #生成器函数--斐波那契
       4     a,b,counter = 0,1,0
       5     while True:
       6         if (counter > n):
       7             return          #作用:如果计数大于n,则结束while循环
       8         yield a
       9         a,b = b,a+b
      10         counter += 1
      11 
      12 f = fibonacci(10)   #f 是一个迭代器,由生成器函数返回生成
      13 
      14 while True:
      15     try:
      16         print(next(f),end=' ')
      17     except StopIteration:
      18         sys.exit()
  • 相关阅读:
    【uniapp】改善中大型uniapp小程序项目开发体验
    vite试玩:老项目启动从6分钟到秒开
    修剪AST树减少webapck打包尺寸
    librispeech数据集下载
    语音识别性能评估方法
    2021.12.11 物联网考试
    2021.12.15 课程总结+加分项
    2021.12.9 观影大数据分析
    2021.12.8 Docker服务
    2021.12.10 阿里云服务器创建
  • 原文地址:https://www.cnblogs.com/gengyufei/p/11322198.html
Copyright © 2020-2023  润新知