lambda 函数
语法格式:
func = lambda 变量1,变量2...:表达式 #赋值
func() #调用
例子:
sum = lambda a,b:a+b
print(sum(4+7))
注意:
Lambda 中只能使用表达式,不能使用
判断
或循环
。
Generator 函数
Generations函数
就是一个生成器,一次生成一个数据项,它和普通的函数一样,只是在函数内部使用了yield
,它可以实现在for循环中遍历,也能使用next()方法获得yield生成的数据项。
语法格式如下:
def 函数名 (参数列表):
...
yield 表达式
事例:
def func(n):
for i in range(n): #遍历i
yield i
for i in func(5): # 循环打印
print(i)
-
yield : 从函数依次返回值
Generator函数可以获取函数值,序列也可以获取函数值,两者有什么区别?
generator函数一次只返回一个数值,占用内存较少,数据访问通过next()方法实现,每生成一次都要记录一次,以便后面生成数据,如果越界,也会有stopiteration异常提示。
序列一次返回所有数据,元素的访问通过索引完成,越界的时候提示list index、out of range、
如果程序性能要求高,一次又只需返回一个数据,就使用generator函数,如果要求返回所有数据就用序列。