匿名函数: 熟练掌握Python中的匿名函数,快速编写简单的函数
匿名函数是Python中的一种高级语法,可以让程序员在不定义函数的情况下快速编写简单的函数。在Python中,匿名函数通常使用lambda表达式生成,其语法格式为:lambda 参数列表:函数体。
在这里,我们需要注意的是,lambda表达式生成的匿名函数只能包含一行代码,如果需要实现多个语句的操作,建议使用普通的函数定义方式。
下面我们将通过实例来详细介绍Python中的匿名函数。
举例1:计算两个数字的和
假设我们需要编写一个函数,实现计算两个数字的和。普通的函数定义方式如下:
def add(x, y):
return x + y
使用lambda表达式生成匿名函数:
add = lambda x, y : x + y
下面我们可以运行测试代码来验证两种方式的结果是否一致:
print(add(1, 2))
print((lambda x, y : x + y)(1, 2))
输出结果为:
3
3
通过运行结果可以发现,lambda表达式生成的匿名函数和普通的函数定义方式达到了相同的效果,且代码行数更加简洁。
举例2:排序
在Python中,排序是一个常见的操作。使用内置函数sorted()可以实现列表的排序,例如:
a = [2, 1, 3, 5, 4]
print(sorted(a))
输出结果为:
[1, 2, 3, 4, 5]
但是如果要根据列表中每个元素的某个属性进行排序,内置函数sorted()就无法满足要求。此时,lambda表达式生成的匿名函数就可以派上用场了。
例如,对下面列表中的元素按照年龄进行排序:
students = [
{'name': 'Tom', 'age': 18},
{'name': 'Cathy', 'age': 20},
{'name': 'Jerry', 'age': 16},
{'name': 'Bob', 'age': 22},
]
使用lambda表达式生成匿名函数:
students_sort = sorted(students, key=lambda x:x['age'])
下面我们可以打印排序后的结果:
print(students_sort)
输出结果为:
[{'name': 'Jerry', 'age': 16}, {'name': 'Tom', 'age': 18}, {'name': 'Cathy', 'age': 20}, {'name': 'Bob', 'age': 22}]
通过上面的实例可以发现,Python中的匿名函数非常适合一些简单的函数,例如计算两个数字的和或者按照列表中的某个属性进行排序等。在日常的编程工作中,合理使用匿名函数可以使代码更加简洁,提高编写效率。
