Morning
主要介绍了lambda函数、map函数、reduce函数和filter函数
1. 用reduce函数求一个列表的乘积。
L2 = [2,5,7,10,21]
from functools import reduce
reduce(lambda x,y:x*y, L2)
运行结果:
14700
2. 用ruduce思想找一个列表中的最大值。
L2 = [34,58,17,10,21]
from functools import reduce
def mymax(x,y):
if x>=y: a = x
else: a = y
return a
reduce(mymax, L2)
运行结果:
58
代码参考悦小妹的代码进行简化:
L2 = [34,58,17,10,21]
from functools import reduce
def mymax(x,y):
if x>=y: return x
else: return y
reduce(mymax, L2)
3. 给出一个列表,只想对其中的奇数运算,之后算出每个奇数的平方,再把所有的平方求和(要求用到map、reduce、filter函数)。
#Step1:筛选出奇数
L3 = [1,2,4,5,8,12,19,27]
def is_odd(n):
return n % 2 == 1
L3i=list(filter(is_odd,L3))
print(L3i)
#Step2:算出每个奇数的平方
L3ii = list(map(lambda x:x**2, L3i))
print(L3ii)
#Step3:把所有的平方求和
from functools import reduce
reduce(lambda x,y:x+y,L3ii)
运行结果:
[1, 5, 19, 27]
[1, 25, 361, 729]
Out[30]: 1116