目录
[一、匿名函数(也称为 lambda 函数):](#一、匿名函数(也称为 lambda 函数):)
[2.1 filter() 函数:](#2.1 filter() 函数:)
[2.2 map() 函数:](#2.2 map() 函数:)
[2.3 sorted() 函数:](#2.3 sorted() 函数:)
一、匿名函数(也称为 lambda 函数):
-
简洁性:匿名函数通常比命名函数更简洁,因为它们可以在一行内定义,不需要显式地写出函数的名称。
-
代码可读性:在某些情况下,匿名函数可以使代码更易读,特别是在函数作为参数传递给其他函数时,使用匿名函数可以使代码更紧凑、更清晰。
-
不占用命名空间:匿名函数不会像命名函数那样占用命名空间,因此在某些情况下,使用匿名函数可以减少全局变量的数量,避免命名冲突。
-
函数式编程:在函数式编程中,匿名函数是一个常见的工具,可以用来快速定义简单的函数,并进行函数组合、映射、过滤等操作。
-
适合简单操作:匿名函数适合用于执行简单的操作,如简单的数学计算、条件判断等,而不适合复杂的函数逻辑。
二、简单样例:
2.1 filter()
函数:
filter()
函数用于过滤序列中的元素,接受一个函数和一个可迭代对象作为参数,返回一个由满足条件的元素组成的迭代器。通常情况下,匿名函数与 filter()
函数结合使用,用于指定过滤条件。
# 使用匿名函数过滤偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers)) # 输出: [2, 4, 6, 8, 10]
2.2 map()
函数:
map()
函数用于对序列中的每个元素应用函数,接受一个函数和一个可迭代对象作为参数,返回一个由函数应用后的结果组成的迭代器。匿名函数通常与 map()
函数结合使用,用于指定转换规则。
# 使用匿名函数将列表中的数字转换为它们的平方
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x ** 2, numbers)
print(list(squared_numbers)) # 输出: [1, 4, 9, 16, 25]
2.3 sorted()
函数:
sorted()
函数用于对可迭代对象进行排序,接受一个可迭代对象和一个可选的比较函数作为参数。匿名函数通常与 sorted()
函数结合使用,用于指定排序规则。
# 使用匿名函数对列表中的字符串按长度排序
words = ['apple', 'banana', 'orange', 'strawberry']
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words) # 输出: ['apple', 'banana', 'orange', 'strawberry']