Python 函数和 Python 匿名函数(lambda)详解
什么是函数?
函数是一种可重用的、可调用的代码块,它接受一些输入(可能为空),并通过执行过程生成一些输出。Python 中的函数定义以 def
关键字开头,后面是函数名、参数列表和冒号,之后是一个缩进的代码块。函数可以返回一个值(使用 return
语句)。以下是一个计算两个数字相加的函数示例:
def add(a, b):
c = a + b
return c
在这个例子中,add()
函数接受两个参数 a
和 b
,计算它们的和,并通过 return
语句返回结果 c
。函数定义后可以通过调用它来使用它,例如:
result = add(2, 3)
print(result) # 输出 5
这将执行 add()
函数,并将 2
和 3
作为参数传递给它。add()
函数将它们相加并返回和 5
,这个结果被赋给变量 result
。最后一行代码将 result
打印到控制台上。
什么是匿名函数?
匿名函数,也叫 lambda 函数,是一种没有名称的函数,它可以接受任意数量的参数,但只能包含一个表达式。当函数体比较简单时,使用匿名函数可以方便地定义一个代码块而不需要正式定义一个函数。
lambda 函数的语法是:lambda parameters: expression
。其中,parameters
是函数的参数列表,用逗号分隔,expression
是函数体。
以下是一个计算两个数字相加的匿名函数示例:
add = lambda a, b: a + b
result = add(2, 3)
print(result) # 输出 5
在这个例子中,我们使用 lambda 表达式定义了一个与 add()
函数相同的函数,并将其赋给变量 add
。我们可以像使用常规函数一样使用它,例如将 2
和 3
作为参数传递给它,并将结果打印到控制台上。
Python 中的函数和匿名函数之间的区别
在程序的结构上,函数和匿名函数非常相似,但是它们之间有几个关键区别:
- 函数必须有名称,匿名函数没有名称。
- 函数可以包含多个语句和逻辑,匿名函数只能包含一个表达式。
- 函数可以在任何地方定义和调用,匿名函数通常用于简化代码中的短小代码块。
函数和匿名函数的示例
示例 1:计算整数列表的和
以下代码演示了如何使用常规函数和匿名函数计算整数列表的和:
# 常规函数
def sum_list(lst):
result = 0
for num in lst:
result += num
return result
# 匿名函数
sum_list_lambda = lambda lst: sum(lst)
# 测试
numbers = [1, 2, 3, 4, 5]
print(sum_list(numbers)) # 输出 15
print(sum_list_lambda(numbers)) # 输出 15
在这个例子中,我们定义了一个常规函数 sum_list()
来计算整数列表的和。函数将总和初始化为 0
,然后循环遍历列表中的每个数字,并将它们添加到总和中。最后,函数返回总和。
我们还定义了一个匿名函数 sum_list_lambda
,它使用内置函数 sum()
来计算列表中的总和,然后将其返回。
最后,我们定义了一个整数列表并使用两个函数计算它的总和。
示例 2:使用函数和匿名函数排序字符串列表
以下代码演示了如何使用常规函数和匿名函数对字符串列表进行排序:
# 常规函数
def sort_list(lst):
lst.sort()
return lst
# 匿名函数
sort_list_lambda = lambda lst: sorted(lst)
# 测试
fruits = ['banana', 'apple', 'orange', 'mango']
print(sort_list(fruits)) # 输出 ['apple', 'banana', 'mango', 'orange']
print(sort_list_lambda(fruits)) # 输出 ['apple', 'banana', 'mango', 'orange']
在这个例子中,我们定义了一个常规函数 sort_list()
来对字符串列表进行排序。函数使用列表的 sort()
方法来进行排序,并返回排序后的列表。
我们还定义了一个匿名函数 sort_list_lambda
,它使用内置函数 sorted()
来对列表进行排序,并返回排序后的列表。
最后,我们定义了一个字符串列表并使用两个函数对其进行排序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python函数和python匿名函数lambda详解 - Python技术站