Python中四大高阶函数,你认识几个

1.匿名函数

def name(a,b):
    return a+b

f=lambda a,b:a+b
print(f(15,15))

2.map函数

第一个参数接收一个函数名,第二个参数接收一个可迭代对象,利用map,lambda表达式将所有偶数元素加100

def fun(a,b):
    return a+b

ret=map(fun,[1,2,3],[4,5,6])
print(list(ret))

3.sorted函数

"""sorted排序(由负及正)"""
list=[1,2,3,4,0,-1,-2,-3]

print(sorted(list,key=lambda x:x))

"""sorted排序(绝对值)"""
list=[1,2,3,4,0,-1,-2,-3]

print(sorted(list,key=abs))

sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。 list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

sorted 语法:

sorted(iterable[, cmp[, key[, reverse]]])

参数说明:

  • iterable -- 可迭代对象。
  • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

4.reduce函数

"""reduce()函数(最好用来求总和总乘)"""
from functools import reduce
def fun(a,b):
    return a+b
ret=reduce(fun,[x for x in range(1,101)])
print(ret)#1到100的总和为5050
ret=reduce(fun,[x for x in range(1,101)ifx%2==0])
print(ret)#1到100的偶数总和为2550
ret=reduce(fun,[x for x in range(1,101)ifx%2==1])
print(ret)#1到100的奇数总和为2500

5.filter函数

"""filter()函数(能够去出符合条件的元素)"""
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
def fun(a):
    return a%2==0
ret=filter(fun,range(1,101))
for x in ret:
    print(x)

filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。

最终一次性返回过滤后的结果。

filter()函数有两个参数:

  • 第一个,自定函数名,必须的
  • 第二个,需要过滤的列,也是必须的
posted @ 2023-11-18 16:35  python学习者0  阅读(96)  评论(0编辑  收藏  举报