python - lambda函数、map函数、filter函数

lambda函数

lambda函数是一种小的匿名函数。可接收任意数量的参数,但只能有一个表达式。

语法:lambda argument : expression  执行表达式,并返回结果 

实例1:

一个lambda函数,a为参数,表达式为给a加10

x = lambda a: a + 10
print(x(3))  # 打印:13

实例2:

一个lambda函数,a,b为参数,表达式为 a*b

x = lambda a, b: a * b
print(x(2, 3))  # 打印:6

使用场景1:把lambda用作另一个函数内的匿名函数

使所传入的数字乘以n倍(使用相同的函数定义来生成两个函数)

def my_func(n):
    return lambda a: a * n  


my_double = my_func(2)  # 使所传入的数字乘以2倍
a = my_double(10)
print(a)  # 打印:20

my_triple = my_func(3)  # 使所传入的数字乘以3倍
b = my_triple(10)
print(b)  # 打印:30

 

map函数

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法:

map(function, iterable, ...)

例子:求列表中每个元素的平方

def sq(x):
    return x**2
a= list(map(sq, [1, 2, 3]))
print(a)  # 打印:[1, 4, 9]

b = list(map(lambda x: x**2, [1, 2, 3]))
print(b)  # 打印:[1, 4, 9]

 

filter函数

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表。常与lambda一起使用

语法:filter(function,iterable)

例子:求列表中的偶数

list_num = [1, 2, 3, 4, 5, 6]
print(list(filter(lambda x: x%2==0, list_num)))  # 打印:[2, 4, 6]

 

posted @ 2022-08-04 13:52  小虫虫大虫虫  阅读(62)  评论(0编辑  收藏  举报