跳至内容

Python Lambda

Lambda函数是一种特殊类型的函数,它没有函数名。

python
lambda: print("hello w3query")
lambda: print("hello w3query")

这里,创建了一个lambda函数,打印"hello w3query"

在学习本章节之前,请先阅读 Python 函数

lambda函数声明

Python中,使用 lambda 关键字创建lambda函数。

lambda语法

python
lambda 参数: 表达式
lambda 参数: 表达式

这里: 参数 - lambda函数的传参 表达式 - lambda函数的执行体

python
# 声明lambda函数
func_greet = lambda: print("hello w3query")
# 调用lambda函数
func_greet()


# 输出:
# hello w3query
# 声明lambda函数
func_greet = lambda: print("hello w3query")
# 调用lambda函数
func_greet()


# 输出:
# hello w3query

这里,首先定义了一个lambda函数,然后赋给了func_greet变量。

lambda函数传参

和普通函数一样,lambda函数也可以接收参数。

python
# 声明lambda函数
func_greet = lambda token: print("hello ", token)
# 调用lambda函数
func_greet("w3query")


# 输出:
# hello w3query
# 声明lambda函数
func_greet = lambda token: print("hello ", token)
# 调用lambda函数
func_greet("w3query")


# 输出:
# hello w3query

这里,我们传递了一个token参数到lambda函数。

filter函数使用lambda

Python filter()函数接收一个过滤函数(lambda函数)和一个迭代容器作为参数。迭代容器中的所有元素都会调用过滤函数,然后返回过滤函数为True的元素。

python
nums = [1, 2, 3, 4, 5, 6]
# 过滤奇数
odd_nums = list(filter(lambda x: (x%2 == 1), nums))

print(odd_nums)


# 输出:
# [1, 3, 5]
nums = [1, 2, 3, 4, 5, 6]
# 过滤奇数
odd_nums = list(filter(lambda x: (x%2 == 1), nums))

print(odd_nums)


# 输出:
# [1, 3, 5]

map函数使用lambda

Python map()函数接收一个映射函数(lambda函数)和一个迭代容器作为参数。迭代容器中的所有元素都会调用映射函数,然后返回映射后的元素。

python
nums = [1, 2, 3]
# 平方映射
pow_nums = list(map(lambda x: x*x, nums))

print(pow_nums)


# 输出:
# [1, 4, 9]
nums = [1, 2, 3]
# 平方映射
pow_nums = list(map(lambda x: x*x, nums))

print(pow_nums)


# 输出:
# [1, 4, 9]