匿名函数和常用的内置函数用法
一、内置函数(lambda)
没有名字的函数,特点用完就没了
固定表达式 (lambda x , y : x+y)
( 形参:返回值 )
1 def my_sum(x,y): 2 return x + y 3 4 res = (lambda x,y:x+y)(1,2)
# :(分号)左边相当于形参,右边相当于函数返回值,加括号可以传参 5 print(res) 6 func = lambda x,y:x+y 7 print(func(1,2))
ps:匿名函数通常不会单独使用,是配合内置函数一起使用
二、常见的内置函数
1、max()内部基于for循环的
min()
1 d = { 2 'egon':30000, 3 'jason':88888888888, 4 'nick':3000, 5 'tank':1000 6 } 7 def index(name): 8 return d[name] 9 10 print(max(d,key=lambda name:d[name])) # 输出 jason 11 # 比较薪资 返回人名 12 print(min(d,key=lambda name:d[name])) # 输出 tank
2、map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
l = [1,2,3,4,5,6] print(list(map(lambda x:x+5,l))) # 基于for循环 # 输出 [6, 7, 8, 9, 10, 11]
3、zip() 函数(拉链)用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
l1 = [1,2,] l2 = ['jason','egon','tank'] l3 = ['a','b','c'] print(list(zip(l1,l2,l3))) # [(1, 'jason', 'a'), (2, 'egon', 'b')]
4、filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
l = [1,2,3,4,5,6] print(list(filter(lambda x:x != 3,l))) # 输出结果 [1, 2, 4, 5, 6]
5、sorted 正序 +reverse=True倒序
l = ['jason','egon','nick','tank'] print(sorted(l,reverse=True)) # 输出结果 ['9', '5', '3', '1']
6、reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
from functools import reduce l = [1,2,3,4,5,6] print(reduce(lambda x,y:x+y,l,19)) # 19初始值 第一个参数 # 当初始值不存在的情况下 按照下面的规律 # 第一次先获取两个元素 相加 # 之后每次获取一个与上一次相加的结果再相加
常见内置函数汇总表:
链接传送门:https://www.runoob.com/python/python-built-in-functions.html