需求:任意两个数字 按照指定的要求整理数字之后再进行求和运算
方法一、
Def add_num(a,b): Return abs(a) + abs(b) Result = add_num(-1,2) Print(result)
方法二、
def sum_num(a,b,f): return f(a) + f(b) result = sum_num(1,2,abs) print(result)
方法二的代码更加简洁,函数的灵活性更强,将高阶函数作为形参传入函数
1. map(func,list)作用:将传入的func作用于list中的每一个元素中,并且将结果做成新的列表(python2)or 迭代器(python3)返回
需求:计算list1中的每一个数字的平方和
list1= [1,2,3,4,5] def func(x): return x**2 result1 = map(func,list1) #返回一个迭代器 print(result1) #打印的只是内存地址 print(list(result1)) #打印的是列表2. reduce(func,list)
这里要求func必须要有两个参数,每次func计算的结果继续和序列中的下一个元素进行累积计算
注意:reduce传入的func必须要有两个参数,且需要导入functools模块
import functools list1 = [1,2,3,4,5] def func(a,b): return a + b result2 = functools.reduce(func,list1) print(result2)3. filter(func,list)
过滤掉不符合条件的元素,返回一个filter的对象,如果要转换成列表可以使用List进行转换
这里的func就是充当筛选条件 true or flase
list2 = [1,2,3,4,4,5,6,6,7,7] def func(x): return x % 2 == 0 result = filter(func,list2) print(result) print(list(result))



