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


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

     
  • 相关阅读:
    IOS开发-OC学习-MD5加密
    数据可视化-使用EXCEL和PS制作一个复杂饼图
    IOS开发-OC学习-Foundation框架练习
    IOS开发-ObjC-NSDictionary
    IOS开发-ObjC-NSArray
    IOS开发-ObjC-NSString
    Java for LeetCode 213 House Robber II
    Java for LeetCode 212 Word Search II
    Java for LeetCode 211 Add and Search Word
    Java for LeetCode 210 Course Schedule II
  • 原文地址:https://www.cnblogs.com/xiaowangba9494/p/11177913.html
Copyright © 2020-2023  润新知