目录:
一. 三元运算,filter和map与lambda表达式结合使用举例
1、三元运算
- 三元运算格式: result=值1 if x<y else 值2 if条件成立result=1,否则result=2
- 作用:三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写
三元运算:
name = 'Tom' if 1 == 1 else 'fly'
print(name)
# 运行结果: Tom
三元运算与lambda结合:
f = lambda x:x if x % 2 != 0 else x + 100
print(f(10)) # 110
2、lambda基本使用
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
- 格式:lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,之后是一个表达式。
lambda基本使用:
f = lambda x,y,z:x+y+z
print(f(1,2,3)) # 6
my_lambda = lambda arg : arg + 1
print(my_lambda(10)) # 11
3、总结:filter()和map()函数区别
- Filter函数用于对序列的过滤操作,过滤出需要的结果,一次性返回他的过滤设置于的是条件
- Map函数是对序列根据设定条件进行操作后返回他设置的是操作方法,无论怎样都会返回结果
map()函数:
- 接收两个参数:一个函数和一个可迭代对象
- 返回值:返回一个生成器
- 生成器内容是将func依次作用域iter每个元素的处理结果
4、filter与lambda表达式结合使用
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
- 1 filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义
的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。
- 2 . filter()函数有两个参数:
- 第一个,自定函数名,必须的
- 第二个,需要过滤的列,也是必须的
利用 filter、lambda表达式 获取l1中元素小于33的所有元素 l1 = [11, 22, 33, 44, 55]:
l1= [11,22,33,44,55]
a = filter(lambda x: x<33, l1)
print(list(a))
自定义函数代替lambda实现相同功能:
l1= [11,22,33,44,55]
def func(num):
if num>33:
return num
result=filter(func,l1)
print(list(result))
5、map与lambda表达式结合使用
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。**
map使用:第一个参数接收一个函数名,第二个参数接收一个可迭代对象
map最基本使用:
lt = [1, 2, 3, 4, 5, 6]
def add(num):
return num + 1
rs = map(add, lt)
print(list(rs)) #运行结果: [2, 3, 4, 5, 6, 7]
利用map,lambda表达式将所有偶数元素加100:
l1= [11,22,33,44,55]
ret = map(lambda x:x if x % 2 != 0 else x + 100,l1)
print(list(ret))
# 运行结果: [11, 122, 33, 144, 55]
利用map,lambda表达式将所有偶数元素加100:
l1= [11,22,33,44,55]
def add(num):
if num%2 == 0:
return num
else:
return num + 100
rs = map(add, l1)
print(list(rs))
自定义函数代替lambda实现相同功能:
l1= [11,22,33,44,55]
def add(num):
if num%2 == 0:
return num
else:
return num + 100
rs = map(add, l1)
print(list(rs))
filter( )函数:
- 参数是一个函数和一个可迭代对象
- 返回一个生成器
- 将func依次作用于iter中的元素,返回值为真的将会保留,为假的将会过滤掉
6、reduce函数
reduce()函数也是Python内置的一个高阶函数。reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
- reduce()函数即为化简函数&