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)

  

  

时间: 2024-10-08 08:16:02

Python学习心得(四) yield和三元运算以及lambda表达式的相关文章

python——三元运算、lambda表达式

一.三元运算 格式:对象 = 值1 if 条件 else 值2                当条件成立将值1赋给对象,反之将值2赋给对象 >>> name = 1 if True else 2 >>> name 1 >>> name = 1 if False else 2 >>> name 2 通式:代码1  if 条件 else 代码2                    当条件成立执行if前面的代码1,不成立则执行代码2 二.

三元运算、lambda表达式

三元运算又叫三目运算. result = "A" if x > y else "B"   #如果条件成立,result=A,否则,result=B. 对于简单的函数,可用lambda表达式. def f1(a1):     return a1 + 100 f1 = lambda a1: a1 + 100

三元运算和lambda表达式

三元运算:   result = 'get' if 1 > 3 else 'li' print result 如果 if 条件中满足,就返回‘get’ 给result,如果为假就返回‘li'给result temp = lambda x,y : x + yprint temp(2,4)

Python学习心得:类与对象

教材:<简明Python教程> Python面向对象: 如shell这种面向过程的程序都是通过"操作数据的函数"或者"语句块"来设计函数. python的程序(面向对象): 类是一个"class"类型,对象是类中的一个实例. 类的属性包括了:域和方法.(即变量和函数) 属于一个对象或类的变量被称为域,一个定义在类中的函数,叫做类的方法. 类使用关键字"class"来创建.域和方法放在同一个缩进块中. 1.域有两种:

python学习第四十八天json模块与pickle模块差异

在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int str list tuple dict pickle 的优点和缺点 优点 专门为python设计,支持python所有的数据类型 缺点 只能python使用,存储数据占空间大 文章来自 www.96net.com.cn 原文地址:https://www.cnblogs.com/96net/p/97806

python学习之生成器yield

python学习之生成器yield **yield的作用是使函数生成一个结果序列而不是一个值,任何使用yield的函数都称为生成器,调用生成器会创建一个对象,该对象通过连续调用next()或者__next__()方法生成结果序列** 一般情况 >>> def count(n,m): >>> print('这是一个循环外部测试') >>> while n>0: >>> print('这是一个循环内部测试') >>>

Python学习第四天学习写的小案例(主要是针对 分支/循环的学习)

Python学习第四天学习写的小案例 (2019/07/17) 第一题:使用while循环输出1 2 3 4 5 6 8 9 10 程序代码: s = 0 while s<10: if s==6: s += 1 # 当数字为7的时候输出一个空格出来 print(end=' ') continue s += 1 print(s,end=' ') 运行结果: 1 2 3 4 5 6 8 9 10 第二题: 求1-100的所有数的和 程序代码: count = 0 for i in range(101

python学习-第四天补充-面向对象

python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的python的伪私有,实际是python通过名字修改来进行的,python会把这样命名的变量或者函数名改为_类名__变量名 class A: __name="hello" t = A(); #print(t.__name) #这样会出现错误,错误提示说这个变量没有__name类型 print

python 三元运算与lambda

一.lambda表达式 1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函