在Python中,匿名函数是通过lambda
关键字来定义的。lambda
函数本质上是一个小的匿名函数,它可以接受任何数量的参数,但只能有一个表达式。这个表达式的计算结果就是lambda
函数的返回值。由于lambda
函数是匿名的,所以它不能通过常规的方式(如使用def
关键字)来命名。
lambda
函数经常与Python中的高阶函数(接受函数作为参数或返回函数的函数)一起使用,比如filter()
、map()
和sorted()
等内置函数。
1. lambda函数
举一个简单的lambda
函数示例,该函数接受两个参数并返回它们的和:
# lambda 参数列表: 表达式
summ = lambda x, y: x + y
print(summ(5, 3)) # 输出: 8
2.map()函数
map()
函数是 Python 中的一个内置高阶函数,map()
函数会对指定序列做映射。它接收两个参数:一个函数和一个可迭代对象(如列表、元组、集合等)。map()
函数会遍历可迭代对象的每个元素,将函数应用于每个元素,并返回一个迭代器,该迭代器包含函数应用于每个元素后的结果。
1.创建map()函数。
# map(function, iterable, ...)
# function:一个函数,map() 会将这个函数应用于可迭代对象的每个元素。
# iterable,...一个或多个可迭代对象.
squares = map(lambda x: x ** 2, range(6))
print(list(squares)) # 输出: [0, 1, 4, 9, 16, 25]
3.sorted()
sorted()
函数是 Python 的一个内置函数,用于对可迭代对象(如列表、元组、字符串等)进行排序,并返回一个新的列表,这个新列表是原列表的排序后的版本,但原列表不会被改变。
基本用法:
sorted()
函数可以接受多个参数,但最常用的参数是可迭代对象(比如列表)和一个可选的 key
函数,用于从每个元素中提取一个用于比较的关键字
# 对列表进行排序
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出: [1, 1, 2, 3, 4, 5, 6, 9]
# 使用 key 参数
words = ["banana", "Apple", "cherry", "Date"]
sorted_words = sorted(words, key=str.lower)
print(sorted_words) # 输出: ['Apple', 'banana', 'cherry', 'Date']
# 逆序排序
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc) # 输出: [9, 6, 5, 4, 3, 2, 1, 1]
注意:sorted()
函数返回一个新的列表,原列表不会被修改。
reverse
():布尔值。如果为 True
,则列表元素以降序排列,否则以升序排列。默认 为 False
lambda
函数因其简洁性而在需要简单函数对象时非常有用,但它们并不适用于所有情况。对于更复杂的逻辑,使用def
定义的命名函数通常更清晰、更易于维护。
一起努力学习吧!少年郎,加油!