• python (匿名函数,sorted(),filter(),map())


    一. 匿名函数

      匿名函数是为了解决一些简单的需求而设计的一句话函数.

      lambda表示匿名函数,不需要def声明,一句话就可以声明一个函数.

      语法:

        函数名 = lambda 参数: 返回值

      注意:

        函数的参数可以是多个,参数之间用 , 隔开

        再复杂的匿名函数也只能写一行,逻辑结束后直接返回数据

        返回值和正常函数一样,可以使任意数据类型.

    a = lambda x: x*x   # 一行搞定一个函数. 但是, 不能完成复杂的函数操作
    print(a)
    print(a(6))
    print(a.__name__)
    #结果:

      匿名函数并不是说一定没有名字,这里前面的变量a 就是一个函数户名. 

      说他是匿名函数原因是因为通过__name__查看函数名的时候,统一都叫lambda.

      在调用时没有什么特别之处,想正常函数一样调用就好.

    二. sorted()函数

      排序语法

      语法:

        lst = sorted(iterable,key:None,reverse = False)

        lst 是逻辑运算后返回一个排序后的新列表名

        iterable 可迭代对象

        key 排序规则,sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数,根据函数运算的结果进行排序.

        reverse 是否倒叙  Ture:倒叙, False:正序

    lst = [5,7,6,12,1,13,9,18,5]
    ll = sorted(lst, reverse=True) # 内置函数. 返回给你一个新列表  新列表是被排序的
    print(ll)
    #结果
    
    #根据元素中a的数量排序
    lst = ["大阳哥a", "尼古拉斯aa", "赵四aaa", "刘能a", "广坤aaaaaa", "谢大脚a"]
    ll = sorted(lst, key=lambda s:s.count('a')) # 内部. 把可迭代对象中的每一个元素传递给func
    print(ll)
    
    #根据字典中'age'的值的大小进行排序 lst = [ {'id':1, 'name':'w', 'age':18}, {'id':2, 'name':'t', 'age':58}, {'id':3, 'name':'d', 'age':38}, {'id':4, 'name':'x', 'age':48}, {'id':5, 'name':'a', 'age':18} ] ll = sorted(lst, key=lambda dic:dic['age'], reverse=True) print(ll)

    三. filter()函数

      筛选函数

      语法:

        filter(function,Iterable)

        function: 用来筛选的函数,在filter钟会知道哦哦那个吧iterable中的元素传递给function.然后根据function返回的Ture或False判断是否留下此项数据.

        iterable: 可迭代对象

    #筛选出奇数
    lst = [1,2,3,4,5,6,7,8,9]
    ll = filter(lambda i:i%2==1, lst)
     # 第一个参数. 函数. 将第二个参数中的每一个元素传给函数. 函数如果返回True, 留下该元素.
    print("__iter__" in dir(ll))    
    print("__next__" in dir(ll))        #所以返回的结果是一个迭代器
    print(list(ll))        
    
    
    #筛选出字典中'age'的值大于40的字典
    lst = [
            {'id':1, 'name':'w', 'age':18},
            {'id':2, 'name':'t', 'age':58},
            {'id':3, 'name':'x', 'age':38},
            {'id':4, 'name':'d', 'age':48},
            {'id':5, 'name':'a', 'age':18}
           ]
    print(list(filter(lambda dic: dic['age']>40, lst)))

    四. map()函数

      映射函数

      语法:

        map(function, iterable)

      第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表.

      将可迭代对象中的每一个元素传递给前面的函数经行处理. 处理的结果会返回一个生成器.

    lst = [1,2,3,4,5,6,7,8,9,0,23,23,4,52,35,234,234,234,234,234,23,4]
    it = map(lambda i: i * i, lst) # 把可迭代对象中的每一个元素传递给前面的函数进行处理. 处理的结果会返回成迭代器
    print(list(it))
    #结果:
    
    lst1 = [ 1, 2, 3, 4, 5]
    lst2 = [ 2, 4, 6, 8]
    it = map(lambda x, y:x+y, lst1, lst2)
    print(list(it)) # 如果函数中有多个参数. 后面对应的列表要一一对应
    #结果:

        

  • 相关阅读:
    【转】Aspose.Cells读取excel文件
    sencha treestore 取消自动加载数据
    百度地图js根据经纬度定位和拖动定位点
    sencha gridpanel checkbox 复选框的勾选 以及和单机行冲突
    c# tcp备忘及networkstream.length此流不支持查找解决
    小程序view排版
    .net+mvc,ueditor
    爬虫BS4—淘女郎
    爬虫手动流程
    python web cgi
  • 原文地址:https://www.cnblogs.com/dong-/p/9350198.html
Copyright © 2020-2023  润新知