匿名函数 匿名函数

匿名函数
匿名函数

一、什么是匿名函数

匿名函数就是没有名字的函数,使用一次就会被收回,加括号即可以运行

lambda x,y: x+y
-----------------------------------------------------------
<function __main__.<lambda>(x, y)>
res = (lambda x,y: x+y)(1,2)
print(res)
-------------------------------------------------------------
3

二、与内置函数连用

sorted():对容器进行从小到大排序

salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(sorted(salary_list,key = lambda i:i[1]))
--------------------------------------------------------
[('tank', 2), ('nick', 5), ('sean', 8)]

max():找出容器中薪资最高的人

对应的还有min()

salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(sorted(salary_list,key = lambda i:i[1]))
-------------------------------------------------------------
('sean', 8)

map():对容器中的薪资做一个映射

salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(list(map(lambda i:i[1] + 2000,salary_list)))   #让他们的工资都加2000
-------------------------------------------------------------
[2002, 2005, 2008]

filter():对容器中满足条件的允许进行筛选

salary_list_dict = {'tank':2,'nick':5,'sean':8}
salary_list = list(salary_list_dict.items())
print(list(filter(lambda i:i[1] <6,salary_list)))  #输出薪资小于6的人名
-------------------------------------------------------------
[('tank', 2), ('nick', 5)]

工作原理

1.首先将可迭代对象变为迭代器对象

2.将i当做参数传给第一个参数指定的函数,然后内置方法判断函数