Fork me on GitHub

【基础09】【自学笔记】python匿名函数和必学高阶函数

一、匿名函数的使用

匿名函数(英语:anonymous function)是指一类无需定义标识符(函数名)的函数。通俗来说呢,就是它可以让我们的函数,可以不需要函数名

这边使用def 和 lambda 分别举个例子,你很快就能理解

def mySum(x, y):
    return x+y
mySum(2, 3)
# 5

(lambda x, y: x+y)(2, 4)
# 6

可以看到匿名函数直接运行,省下了很多行的代码

带 if/else 

>>>( lambda x, y: x if x < y else y )( 1, 2 )
 

 递归函数

>>> func = lambda n:1 if n == 0 else n * func(n-1)
>>> func(5)
120

 

>>> a = lambda *z:z #*z返回的是一个元祖
>>> a('Testing1','Testing2')
('Testing1', 'Testing2')

  

>>> c = lambda **Arg: Arg #arg返回的是一个字典
>>> c()
{}

  

二、必学高阶函数

1. map 函数

map()函数:将一个函数应用于一个可迭代对象的每个元素,并返回一个新的可迭代对象,其中包含每个元素应用函数后的结果。

numbers = [1, 2, 3, 4, 5]

def square(x):
    return x ** 2

squared_numbers = map(square, numbers)

print(list(squared_numbers))  # Output: [1, 4, 9, 16, 25] 

2.filter 函数

filter()函数:使用一个函数来测试一个可迭代对象的每个元素,并返回一个新的可迭代对象,其中包含所有测试为True的元素。

numbers = [1, 2, 3, 4, 5]

def is_even(x):
    return x % 2 == 0

even_numbers = filter(is_even, numbers)

print(list(even_numbers))  # Output: [2, 4]

  

3. reduce 函数

reduce()函数:将一个函数应用于一个可迭代对象的所有元素,并返回一个单个的结果值。

http://image.iswbm.com/20200930175131.png

这边举个例子你也就明白了。

from functools import reduce

numbers = [1, 2, 3, 4, 5]

def multiply(x, y):
    return x * y

product = reduce(multiply, numbers)

print(product)  # Output: 120

  

posted @ 2021-12-22 14:36  橘子偏爱橙子  阅读(40)  评论(0编辑  收藏  举报