首先我们用几个题目来引入:
一、一行代码实现1-100奇数求和
第一种:filter+lambda(3种)
sum(list(filter(lambda x: x%2==1,range(1,101))))
解析:
1、lambda是一个表达式,而不是一个语句。
因为这一点,lambda可以出现在python语法不允许def出现的地方—例如,在一个列表常量中或者函数调用的参数中,此外,作为一个表达式,lambda返回一个值或者序列(一个新的函数),可以选择性地值给一个变量名。相反,def语句总是得在头部将一个新的函数赋值给一个变量名,而不是将这个函数作为结果返回。
lambda 的主体是一个单个的表达式,而不是一个代码块。
lambda是一个为编写简单的函数设计的,而def用来处理更大的任务。
f=lambda x,y,z: x+y+z f(2,3,4)
2、filter 函数
filter函数会对指定序列执行过滤操作
filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True
的item
组成一个List/String/Tuple
(取决于sequence的类型)返回
:
filter(lambda x: x%2==1, range(1, 1