• Python--->匿名函数


    1.匿名函数:简化函数定义

    格式:lambda args1,args2,.... : 运算

    通常函数写法如下:

    匿名函数写法如下:

    注意:此时result1实际为函数名,就是通常函数中的def后跟的函数名:add,想要得到返回结果,还需要调用result1(),

    若你只打印result1,出现的是函数所以引用的地址,如下图:

    输出结果:

     2.匿名函数作为参数

    输出结果:

     3.匿名函数与内置函数的结合使用:

    max()求列表最大值

    一种情况:列表是可迭代对象

    语法:max(list)

    l

    输出结果:

    打印max(list)即可得到列表最大值

     一种情况:列表中元素是字典类型

    语法:max(list,key=func)

    输入结果:

     

    这里的lambda x:x['a']其实就是通过字典的key,求value的函数

    函数max(list1,key=func)工作原理:第一个参数:list1告诉max函数是哪个列表,然后通过key求出的value值再一个一个传给max计算得出最大值

     min()求列表最小值

    原理同max()一样,详细参考上述max()

    map() :对列表中每个元素进行遍历,运算,一般用于对列表每个元素进行某些操作,比如+、-

    语法:map(func,list)

    注意:map()后需要用list()强转化为一个列表

    输出结果:

    对列表每个值都+2处理,等同于遍历函数,如下:


    输出结果:

     

    还可以通过奇偶数操作,如下:

     输出结果:

    对奇数加1处理

    reduce():对列表中元素从左到右进行加减乘除运算的函数

    语法:ruduce(func,sequence,initial)   # initial 默认值为None

    输出结果:

     注意:需到导入:from functools import reduce

    工作原理为:result = ((0+1)+2)+3   = 6

    如果设置initial = 10,如下:

     输出结果:

     工作原理为:result = ((10+1)+2)+3   = 16

    filter():根据函数条件过滤列表,返回一个新列表,原列表不变

    语法:filter(func,list)

    注意:filter()后需要用list()强转化为一个列表

     输出结果:

     这里把大于3的元素都筛选出来了,相当于过滤函数,如下:

     输出结果:

    sorted():对列表进行排序

    语法:sorted(list,key=func,reverse=False/True)

    将'a'的value值从大到小排列

     输出结果:

     将'a'的value值从小到大排列

     输出结果:

  • 相关阅读:
    C++笔记(2018/2/6)
    2017级面向对象程序设计寒假作业1
    谁是你的潜在朋友
    A1095 Cars on Campus (30)(30 分)
    A1083 List Grades (25)(25 分)
    A1075 PAT Judge (25)(25 分)
    A1012 The Best Rank (25)(25 分)
    1009 说反话 (20)(20 分)
    A1055 The World's Richest(25 分)
    A1025 PAT Ranking (25)(25 分)
  • 原文地址:https://www.cnblogs.com/abner-pan/p/11869925.html
Copyright © 2020-2023  润新知