目录
什么是高阶函数?
把函数作为参数传入,这样的函数称为高阶函数
例如:
def func(a,b,f):
return f(a)+f(b)
c=func(-10,2,abs)
print(c)
1、map 映射函数->遍历元素
语法:map(func,iterable),迭代器每个元素
返回结果:(python2:列表,python3:可迭代器通过list展开)
例如:
l1=[1,2,3,4,5,6]
l2=[7,8,9]
def func(x,y):
return x+y
print(list(map(l1,l2)))
print(list(map(lambda x,y:x+y,l1,l2)
例题:
a=[1,2,3,4]->["1","2","3","4"]
print(list(map(str,a)))
2、reduce 一个序列的累计处理
导入from functools import reduce
语法:reduce(func,sequence,[,initial])
返回结果 :序列中每个元素执行func返回一个结果
例如:
from functools import reduce
def add(a,b):
return a+b
a = [1,2,3,4,5]
sum_a = reduce(add, a)
3、filter 过滤函数
语法:filter(func,iterable)
作用是:用于过滤数据
返回结果:符合条件的结果,一般为列表
例如:
def funx(x):
if x % 2 == 1:
return x
a=[1,2,3,4,5,6,7,8,9]
list(filter(lambda x:x % 2,a))
4、sorted/sort
语法:sorted(iterable,key=None,reverse=False)
iterable:列表,元组,字典,range对象
key:可以是一个函数,可以根据函数进行排序
reverse:False,默认升序(1,2,3...)
sort
语法:sorted(iterable,key=None,reverse=False),只对列表进行排序
例如:
a=["dad","ASD","BSsd","cSD"]
sorted(a,key=lambda x:x.lower())
sorted(a,key=str.lower())
5、zip 打包
语法:zip(*iterable)
参数:可迭代对象,列表,字符串,元组,集合
结果:zip形式,通过list可以展开成列表形式
特点:处理长度为0的对象,处理不同长度的对象,同时处理不同的可迭代对象,反解压
例如:
a = [11,12,13]
b = (21,22,23)
print([x for x in zip(a,b)])
d = {31:2,32:4,33:5}
e = {41,42,43,44}
print([x for x in zip(d)])
f = "python"
h = "shell"
print([x for x in zip(e,h)])