函数匿名

有名函数

我们之前定的函数都是有名函数,他是基于函数名使用.

def func():
    print('from func')


func()
func()
func()
print(func)

匿名函数

匿名函数没有绑定名字,使用一次即被收回,加括号即可运行,匿名需要关键字lambda

f = lambda x: x+1
res = f(1)
print(res)

与内置函数连用

匿名函数一般不单独使用,和 filter()/map()/sorted()/列表的sort()内置方法联用

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000
}
salary_list = list(salary_dict.items())
print(salary_list)  # [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]


def func(i):  # i = ('sean', 2000), ('nick', 3000),('tank', 5000),('jason', 100000)
    return i[1]  # 2000,3000,5000,100000


salary_list.sort(key=lambda i: i[1])  # 内置方法是对原值排序
# # 按照func的规则取出一堆元素2000,3000,5000,100000
# # 然后按照取出的元素排序
print(salary_list)

new_salary_list = sorted(salary_list, key=lambda i: i[1], reverse=True)  # 重新创建一个新的列表进行排序
print(new_salary_list)

[('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
[('sean', 2000), ('nick', 3000), ('tank', 5000), ('jason', 100000)]
[('jason', 100000), ('tank', 5000), ('nick', 3000), ('sean', 2000)

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000
}

salary_list = list(salary_dict.items())
print(salary_list)  # [('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]


print(max(salary_list,key=lambda i:i[1]))
print(min(salary_list,key=lambda i:i[1]))

print(list(filter(lambda i: i[1] < 5000, salary_list)))  
print(list(map(lambda i: i[1] + 2000, salary_list)))

[('nick', 3000), ('jason', 100000), ('tank', 5000), ('sean', 2000)]
('jason', 100000)
('sean', 2000)
[('nick', 3000), ('sean', 2000)]
[5000, 102000, 7000, 4000]

原文地址:https://www.cnblogs.com/aden668/p/11348326.html