当前位置: 移动技术网 > IT编程>脚本编程>Python > python3 之 迭代器与生成器

python3 之 迭代器与生成器

2019年08月08日  | 移动技术网IT编程  | 我要评论

时光中的匆匆独白,鬼父全集1-16,刘星夏雪演恋人

迭代器

  迭代是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()

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网