zoukankan      html  css  js  c++  java
  • 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值从小到大排列

     输出结果:

  • 相关阅读:
    0125——时钟
    0125——动画2
    0124——动画1
    0124——KVC KVO模式
    0123——单例模式
    0122——简单小动画+微博简单模拟2
    0122——UITabBarController
    0119——UIImageView的一些属性 和 简单动画实现
    12月28号 ios设计简单操作
    12月25号 Category类别
  • 原文地址:https://www.cnblogs.com/abner-pan/p/11869925.html
Copyright © 2011-2022 走看看