zoukankan      html  css  js  c++  java
  • Python学习心得(四) yield和三元运算以及lambda表达式

    1.yield 英文意思生产、生成的意思,在Python中带有yield的函数被称为生成器(Generator)

    '''
    
    for i in range(10000)  #生成10000个元素的List 值越大,运行中占用的内存就会越大
    for j in xrange(10000) #xrange返回的不是List,而是一个iterable的对象 每次迭代返回下一个数值,占用很小的内存空间
    
    '''
    
    def readFileByYield(xpath):
        with open(xpath,'rb') as ty:
            for line in ty.readlines():
                yield line #每执行一次yield,语句就会中断,并返回一个迭代值
    
    #for循环中会自动调用 next()
    for line in readFileByYield('D:wangyi.py'):
        print line
    

    2.Python三元运算 语法格式:为真时的结果 if 判定条件 else 为假时的结果   

    1 if 10>9 else 0
    
    def threeElementExpression(a,b):                             
        return a - b if a > b else abs(a - b) 
    
    print threeElementExpression(1,5)
    print threeElementExpression(10,5)
    

    3.lambda表达式,它能实现函数速写的功能,相当于匿名函数,而用def声明的函数是有名称的,比如:

    lambdatest = lambda x:x**2
    
    for i in range(1,5):
        print lambdatest(i)
    
    
    list_lambda = range(1,10)
    
    #列表中的每个元素加1
    print map(lambda a: a+1, list_lambda) 
     
    #返回列表中的偶数
    print filter(lambda a: a % 2 == 0, list_lambda) 
     
    #返回列表中所有元素相乘的结果
    print reduce(lambda a, b: a * b, list_lambda) 
    

      

      

  • 相关阅读:
    idea炫酷主题下载网站
    You have not concluded your merge (MERGE_HEAD exists)
    内部接口
    Nginx初尝试
    泛型和反射
    使用idea创建web项目
    <转>如果你报createSQLQuery is not valid without active transaction,请看这里
    android 通过pull解析xml文件
    shiro环境搭建
    springmvc文件上传
  • 原文地址:https://www.cnblogs.com/binguo2008/p/7236981.html
Copyright © 2011-2022 走看看