zoukankan      html  css  js  c++  java
  • 列表推导式和生成器表达式

     1 #老男孩由于峰哥的强势加盟很快走上了上市之路,alex思来想去决定下几个鸡蛋来报答峰哥
     2 
     3 egg_list=['鸡蛋%s' %i for i in range(10)] #列表解析
     4 
     5 #峰哥瞅着alex下的一筐鸡蛋,捂住了鼻子,说了句:哥,你还是给我只母鸡吧,我自己回家下
     6 
     7 laomuji=('鸡蛋%s' %i for i in range(10))#生成器表达式
     8 print(laomuji)
     9 print(next(laomuji)) #next本质就是调用__next__
    10 print(laomuji.__next__())
    11 print(next(laomuji))

    总结:

    1.把列表解析的[]换成()得到的就是生成器表达式

    2.列表解析与生成器表达式都是一种便利的编程方式,只不过生成器表达式更节省内存

    3.Python不但使用迭代器协议,让for循环变得更加通用。大部分内置函数,也是使用迭代器协议访问对象的。例如, sum函数是Python的内置函数,该函数使用迭代器协议访问对象,而生成器实现了迭代器协议,所以,我们可以直接这样计算一系列值的和:

    1 sum(x ** 2 for x in xrange(4))

    而不用多此一举的先构造一个列表:

    1 sum([x ** 2 for x in xrange(4)]) 
  • 相关阅读:
    Timer 函数 C#
    【学习笔记】 golang的插件 创建share object
    mongodb数组操作
    mongo数据库的表设计原则:二
    mongodb + nginx 存储照片方案
    mongodb聚合操作$使用例子
    mongo配置复制集
    尼采全集
    java日志框架
    常用包收集
  • 原文地址:https://www.cnblogs.com/0704L/p/7274928.html
Copyright © 2011-2022 走看看