1 map()函数
map()函数可以将输入变量依次带入指定函数进行运算。
1.1 批量计算数据的平方
def sq(n): # 定义平方函数
return n * n
x = [1, 2, 3, 4, 5, 6]
y = list(map(sq, x)) # 调用map()函数,第一个参数是自定义的sq()函数,第二个参数是列表变量x;结果返回列表变量y。
print(y)
运行结果
[1, 4, 9, 16, 25, 36]
1.2 批量计算变量的最大值和最小值
x1 = [41, 68, 47, 87, 39, 46, 102, 77, 51]
x2 = [329, 241, 864, 375, 224, 148, 504, 694, 417]
x3 = [0.54, 0.74, 0.09, 0.33, 0.51, 0.49, 0.27, 0.19, 0.82]
x=[x1, x2, x3]
x_max = list(map(max, x))
x_min = list(map(min, x))
print(x_max)
print(x_min)
运行结果
[102, 864, 0.82]
[39, 148, 0.09]
说明:通过map()函数,同时计算出来x1、x2和x3的最大值与最小值。
2 reduce()函数
reduce()函数可以将列表x中前n个数据带入指定函数进行运算,并将输出结果m加入列表x中并与余下的数据重复进行前面的计算过程。
2.1 利用reduce函数求n的阶乘
from functools import reduce
def my_multi(a, b):
return a * b
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = reduce(my_multi, x) # 计算过程为1,2带入my_multi()函数,输出结果2加入列表x中;2,3再次带入my_multi()函数进行计算,输出结果6加入列表x中,6,4再次带入my_multi()函数进行计算,....。
print(y)
运行结果
3628800
2.2 利用reduce函数求一组变量的最大值
from functools import reduce
def my_sort(a, b):
if a >= b:
return a
else:
return b
x = [41, 68, 47, 87, 39, 46, 102, 77, 51]
y = reduce(my_sort, x) # 两辆比较返回较大值,并继续后面的数据比较
print(y)
运行结果
102