Python中的匿名函数使用指南
发布时间:2023-06-17 04:49:04
匿名函数在Python中非常常用,尤其是在高阶函数中,比如map,filter,reduce等函数中。匿名函数也叫做lambda函数,是一种没有def关键字定义的简单函数。
定义匿名函数的语法是:lambda 参数列表: 表达式,这里的参数列表和普通函数的参数列表是一样的,只是没有函数名而已,表达式则是函数的返回值,可以是任意合法的Python表达式。
下面来看几个常见的匿名函数应用示例。
1.使用在map中
map函数会将一个函数作用于一个序列中的每一个元素,并返回处理结果的一个列表。先来看一下使用普通函数的示例:
def square(x):
return x**2
lst = [1, 2, 3, 4, 5]
squares = map(square, lst)
print(list(squares)) # [1, 4, 9, 16, 25]
使用匿名函数可以更简洁地写出上面的代码:
lst = [1, 2, 3, 4, 5] squares = map(lambda x: x**2, lst) print(list(squares)) # [1, 4, 9, 16, 25]
2.使用在filter中
filter函数会将一个函数作用于一个序列中的每一个元素,并根据函数返回的结果是否为True或False来过滤掉一些元素,并返回一个由剩下元素组成的一个列表。先来看一下使用普通函数的示例:
def even(x):
return x % 2 == 0
lst = [1, 2, 3, 4, 5]
evens = filter(even, lst)
print(list(evens)) # [2, 4]
使用匿名函数可以更简洁地写出上面的代码:
lst = [1, 2, 3, 4, 5] evens = filter(lambda x: x % 2 == 0, lst) print(list(evens)) # [2, 4]
3.使用在sorted中
sorted函数会将一个序列中的元素进行排序并返回排序后的一个列表,它也可以接受一个函数作为第二个参数,用来定制排序规则。先来看一下使用普通函数的示例:
def get_name_length(name):
return len(name)
lst = ['Tom', 'Jerry', 'Mike', 'Bob']
sorted_lst = sorted(lst, key=get_name_length)
print(sorted_lst) # ['Tom', 'Bob', 'Mike', 'Jerry']
使用匿名函数可以更简洁地写出上面的代码:
lst = ['Tom', 'Jerry', 'Mike', 'Bob'] sorted_lst = sorted(lst, key=lambda x: len(x)) print(sorted_lst) # ['Tom', 'Bob', 'Mike', 'Jerry']
总结
Python中匿名函数使用非常简单,语法也很简洁明了。在高阶函数的应用中,必须熟练掌握匿名函数的使用,才能更好地进行编程。
