匿名函数和常用的内置函数用法

一、内置函数(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

匿名函数和常用的内置函数用法