Lambda函数原理
在Python中,lambda函数是一个匿名函数,它可以快速定义一个简单的函数。与普通的def函数不同,lambda函数没有函数名,并且通常用来简短地表示一些小的操作。
基本语法:
lambda 参数: 表达式
- 参数:可以有多个参数,也可以没有。
- 表达式:函数体,返回的是该表达式的计算结果。
示例:
-
一个简单的
lambda函数:f = lambda x: x + 2 print(f(3)) # 输出 5 -
lambda函数可以接受多个参数:add = lambda x, y: x + y print(add(3, 5)) # 输出 8 -
作为排序的
key函数:lst = [(1, 2), (3, 1), (5, 0)] lst.sort(key=lambda x: x[1]) # 按第二个元素排序 print(lst) # 输出 [(5, 0), (3, 1), (1, 2)]
Lambda函数常见用途:
-
排序:我们可以通过
lambda函数快速定义排序规则。intervals.sort(key=lambda x: x[0])上面的代码是用
lambda函数对intervals按每个区间的第一个元素进行排序。 -
过滤:通过
filter()函数配合lambda,可以快速过滤符合条件的元素。numbers = [1, 2, 3, 4, 5] result = filter(lambda x: x % 2 == 0, numbers) print(list(result)) # 输出 [2, 4] -
映射:
map()函数与lambda配合使用,可以对列表中的每个元素应用一个转换函数。numbers = [1, 2, 3, 4] result = map(lambda x: x ** 2, numbers) print(list(result)) # 输出 [1, 4, 9, 16]
练习题
-
问题 1:写一个
lambda函数,返回一个数的平方。然后使用该函数打印5的平方。 -
问题 2:给定一个字符串列表,使用
lambda和sorted函数按字符串的长度排序列表。words = ["apple", "banana", "cherry", "date"] -
问题 3:给定一个数字列表,使用
lambda和filter函数过滤出所有偶数。numbers = [1, 2, 3, 4, 5, 6, 7, 8] -
问题 4:用
map和lambda函数将一个数字列表中的所有数字都转换为其两倍的值。numbers = [1, 2, 3, 4] -
问题 5:给定一个列表,按照每个元素的最后一个字符对列表进行排序。
words = ["apple", "banana", "cherry", "date"]
参考答案
# 1-写一个lambda函数,返回一个数的平方。然后使用该函数打印5的平方
f = lambda x:x**2
print(f(5))
# 2-给定一个字符串列表,使用lambda和sort函数按字符串的长度排序列表
words = ['apple', 'banana', 'cherry', 'date', 'elderberry']
words.sort(key=lambda word:len(word))
print(words)
# 3-给定一个整数列表,使用lambda和filter函数过滤出所有偶数
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = filter(lambda x:x % 2 == 0, nums)
print(list(even_nums))
# 4-用map和lambda函数将一个数字列表中的所有数字都转换为其两倍的值
nums = [1, 2, 3, 4]
nums_sq = map(lambda x:x**2, nums)
print(list(nums_sq))
# 5-给定一个列表,按照每个元素的最后一个字符对列表进行排序
words = ['apple', 'banana', 'cherry', 'date', 'elderberry']
words.sort(key=lambda word:word[-1])
print(words)
5985

被折叠的 条评论
为什么被折叠?



