zoukankan      html  css  js  c++  java
  • 匿名函数和内置函数

    匿名函数

    匿名函数就是没有名字的函数

    lambda:1

    PS:冒号左边时参数,右边是返回值

    因为没有名字,而函数的调用就是通过函数名+()

    匿名函数单独使用毫无意义,它是配合内置函数一起使用

    匿名函数需要一次性使用

    内置函数

    python内部提供的内置方法

    max:最大值 max(可迭代对象)
    min:最小值 min(可迭代对象)
    l1 = [1, 2, 3, 4, 5]
    # 打印出l1列表中最大的值
    print(max(l1))
    # 打印出l1列表中最小的值
    print(min(l1))
    

    上边匿名函数中说道能和内置函数一起使用,让我们来看一下

    dict1 = {
        'tank':500,
        'sean':400,
        'egon':600
    }
    print(max(dict1,key= lambda x:dict1[x]))
    print(min(dict1,key= lambda x:dict1[x]))
    
    sorted:排序,默认升序(从小到大)
    l1 = [6, 1, 2, 3, 4, 5]
    # 给l1从小到大排序
    print(sorted(l1))
    
    他还有个参数reverse:反转(倒序)它的默认参数是False

    reverse True 降序

    # 给l1从大到小排序
    print(sorted(l1,reverse=True))
    

    结合dict1和匿名函数我们给dict1排一下序

    dict1 = {
        'tank':500,
        'sean':400,
        'egon':600
    }
    # 按照dict1中的value从小到大排序,返回key
    print(sorted(dict1,key= lambda x:dict1[x]))
    # 按照dict1中的value从大到小排序,返回key
    print(sorted(dict1,key= lambda x:dict1[x],reverse=True))
    

    map():映射

    语法:

    map(函数地址(func),可迭代对象)---->map对象

    map会将可迭代对象中的每一个值进行修改,然后映射一个map对象中,可以再将map对象转换成列表或元组

    注意:生成器(迭代器)用一次就用完了,所以用完后就不能再取了

    l1 = ['a','b','c','d']
    # 如果列表里有'a'在后面加'_1'如果不是就加'_2'
    res = map(lambda x:x+'_1' if x == 'a' else x + '_2' ,l1)
    print(list(res))
    # 生成器(迭代器)用一次就用完了,所以用完后就不能再取了
    print(tuple(res))   # 这时打印出来的就是空元组()
    

    reduce():合并

    语法:

    reduce(函数地址(func),可迭代对象,初始值(初始值默认为0))

    每次从可迭代对象中获取两个值进行合并

    from functools import reduce
    # 计算1-100的和后再加1000
    res = reduce(lambda x,y:x+y,range(1,101),1000)
    print(res)		# 打印结果6050
    

    filter():过滤

    语法:

    filter(函数地址(func),可迭代对象)

    filter会将函数中返回结果为True的对应的参数值过滤出来

    过滤出来的值会添加到filter对象中

    list1 = ['a_1', 'b_2', 'c_2', 'd_2']
    # 将后缀名为_1的元素过滤出来
    res = filter(lambda x:x.endswith('_1'),list1)
    print(res)			# <filter object at 0x000002B7C2477648>
    print(list(res))	# ['a_1']
    
  • 相关阅读:
    HashMap的负载因子为什么默认是0.75?这篇文章告诉你答案
    如何设计短网址系统?
    前端HTML史上最全总结,入门级边学边实战!
    阿里2021最全新的java面试题总结
    三万字,100题!Linux知识汇总!
    程序员路线图
    基于nodejs的selenium的自动化测试之网络元素
    Electron桌面程序入门研究
    Git常用命令
    二次探测法
  • 原文地址:https://www.cnblogs.com/aheng/p/11859364.html
Copyright © 2011-2022 走看看