python学习笔记-高阶函数

python学习笔记-高阶函数

需求:任意两个数字 按照指定的要求整理数字之后再进行求和运算

方法一、

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))

Guess you like

Origin blog.csdn.net/qq_44653420/article/details/121302090