当前位置 主页 > 服务器问题 > Linux/apache问题 >

    python列表生成器迭代器实例解析

    栏目:Linux/apache问题 时间:2019-12-19 15:57

    这篇文章主要介绍了python列表生成器迭代器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    列表生成式

    例如 有一个列表

    a =[2,3,4,5]

    需要将列表都加上1

    #第一种方法
    for i in map(lambda i:i+1,a)
    #第二种方法
    for index,i in enumerate(a):
      a[index] +=1
    
    print(a)
    #第三种,简单列表生成式
    a = [i+1 for i in a]
    print(a)
    #加个三元运算符
    a = [ i *2 if i>3 else i for i in a]

    1.列表生成器_惰性运算

    1.1 生成器

    中括号就是列表生成式,小括号就是列表生成器

    a = ( i *2 for i in range(a))

    def fib(num):
      count = 0
      a,b = 0 ,1 #a=0, b= 1
      while count < num:
        tmp = a
        a = b
        b = a + tmp
        #print(a)
        count +=1
        yield a #返回a, 同时挂起当前这个函数, a返回给了通过__next__()调用当前函数的人
        #return a
      print("done...")
    
    f = fib(10)
    print(f.__next__())

    迭代器

    所有的生成器都是迭代器,迭代器不一定都是生成器(不同的角度,用iter方法,python

    内存对象认为迭代器,从本质上就一回事)

    例如 python 3里面 range(0,10) 这实际上就是一个迭代器

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。