5.14 匿名函数

  1. lambda x , y : x+y

1 匿名的目的就是要没有名字,给匿名函数赋给一个名字是没有意义的

2 匿名函数的参数规则、作用域关系与有名函数是一样的

3 匿名函数的函数体通常应该是 一个表达式,该表达式必须要有一个返回值

  1. f=lambda x,n:x ** n
  2. print(f(2,3))

lambda匿名函数的应用:**max,min,sorted,map,reduce,filter**

求工资最高的人:max

  1. salaries={
  2. 'egon':3000,
  3. 'alex':100000000,
  4. 'wupeiqi':10000,
  5. 'yuanhao':2000
  6. }
  7. def get(k):
  8. return salaries[k]
  9. print(max(salaries,key=get)) #'alex'
  10. print(max(salaries,key=lambda x:salaries[x]))
  11. info = [
  12. {'name': 'egon', 'age': '', 'salary': ''},
  13. {'name': 'wxx', 'age': '', 'salary': ''},
  14. {'name': 'lxx', 'age': '', 'salary': ''}
  15. ]
  16. max(info, key=lambda dic: int(dic['salary']))
  17. max([11, 22, 33, 44, 55])

求工资最低的人:min

  1. salaries={
  2. 'egon':3000,
  3. 'alex':100000000,
  4. 'wupeiqi':10000,
  5. 'yuanhao':2000
  6. }
  7. print(min(salaries,key=lambda x:salaries[x])) # 'yuanhao'
  8. info=[
  9. {'name':'egon','age':'','salary':''},
  10. {'name':'wxx','age':'','salary':''},
  11. {'name':'lxx','age':'','salary':''}
  12. ]
  13. min(info,key=lambda dic:int(dic['salary']))

把薪资字典,按照薪资的高低排序sort

  1. salaries={
  2. 'egon':3000,
  3. 'alex':100000000,
  4. 'wupeiqi':10000,
  5. 'yuanhao':2000
  6. }
  7. alaries=sorted(salaries) # 默认按照字典的键排序
  8. print(salaries)

  9. # salaries=sorted(salaries,key=lambda x:salaries[x]) #默认是升序排
  10. alaries=sorted(salaries,key=lambda x:salaries[x],reverse=True) #降序
  11. print(salaries)
  12. info=[
  13. {'name':'egon','age':'','salary':''},
  14. {'name':'wxx','age':'','salary':''},
  15. {'name':'lxx','age':'','salary':''}
  16. ]
  17. l=sorted(info,key=lambda dic:int(dic['salary']))

map 映射, 循环让每个元素执行函数,将每个函数执行的结果保存到新的列表中

  1. v1 = [11,22,33,44]
  2. result = map(lambda x:x+100,v1) # 第一个参数为执行的函数,第二个参数为可迭代元素.
  3. print(list(result)) # [111,122,133,144]
  4. names=['alex','wupeiqi','yuanhao','egon']
  5. res=map(lambda x:x+'_NB' if x == 'egon' else x + '_SB',names)
  6. print(list(res))

reduce , 对参数序列中元素进行累积.

  1. import functools
  2. v1 = ['wo','hao','e']

  3. def func(x,y):
  4. return x+y
  5. result = functools.reduce(func,v1)
  6. print(result) # wohaoe

  7. result = functools.reduce(lambda x,y:x+y,v1)
  8. print(result) # wohaoe

  9. from functools import reduce
  10. l=['my','name','is','alex','alex','is','sb']
  11. res=reduce(lambda x,y:x+' '+y+' ',l)
  12. print(res)
  13. #my name is alex alex is sb

filter , 按条件筛选.

  1. result=filter(lambda x:x > 2,[1,2,3,4])
  2. print(list(result))
  3. v1 = [11,22,33,'asd',44,'xf']

  4. # 一般做法
  5. def func(x):
  6. if type(x) == int:
  7. return True
  8. return False
  9. result = filter(func,v1)
  10. print(list(result)) # [11,22,33,44]

  11. # 简化做法
  12. result = filter(lambda x: True if type(x) == int else False ,v1)
  13. print(list(result))

  14. # 极简做法
  15. result = filter(lambda x: type(x) == int ,v1)
  16. print(list(result))
  17. names=['alex_sb','wxx_sb','yxx_sb','egon']
  18. res=filter(lambda x:True if x.endswith('sb') else False,names)
  19. res=filter(lambda x:x.endswith('sb'),names)
  20. print(list(res)) #['alex_sb', 'wxx_sb', 'yxx_sb']
  21. ages=[18,19,10,23,99,30]
  22. res=filter(lambda n:n >= 30,ages)
  23. print(list(res)) #[99, 30]
  24. salaries={
  25. 'egon':3000,
  26. 'alex':100000000,
  27. 'wupeiqi':10000,
  28. 'yuanhao':2000
  29. }
  30. res=filter(lambda k:salaries[k] >= 10000,salaries)
  31. print(list(res)) #['alex', 'wupeiqi']

python 之 匿名函数的更多相关文章

  1. python基础——匿名函数

    python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.  在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...

  2. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  3. 孤荷凌寒自学python第二十天python的匿名函数与偏函数

    孤荷凌寒自学python第二十天python的匿名函数与偏函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python为使函数的使用更加方便高效,可以使用两种特殊的函数简化语句书写. 一 ...

  4. 小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)

    小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: ...

  5. Python中匿名函数与内置高阶函数详解

    大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...

  6. Python 之匿名函数和偏函数

    匿名函数与偏函数 匿名函数 Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下: lambda arg1, arg2, … : e ...

  7. day16 python之匿名函数,递归函数

    匿名函数 匿名函数格式 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任 ...

  8. python之匿名函数以及在内置函数中的使用

    一. 匿名函数 Python使用 lambda 来创建匿名函数.所谓匿名函数,它与用 def 关键字定义的函数相比,没有函数名称. 1.1 匿名函数定义及特点 语法: lambda [para1, p ...

  9. python的匿名函数lambda解释及用法

    lambda函数的语法只包含一个语句,如下:    lambda arg1,arg2,.....argn:expression(主要是看下面的例子)代码示例: #-*- coding:utf-8 -* ...

  10. python lambda匿名函数

    Python的一个很重要的方面就是:函数式编程(functional programming),即可以再原本传递参数和值的地方传递函数. lambda x: x%3 == 0 和以下等价: def b ...

随机推荐

  1. Wannafly挑战赛12 A 银行存款 【DP】【DFS】

    链接:https://www.nowcoder.com/acm/contest/79/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  2. ajax 异步 跨域上传图片

    客户端 <label for="text">名称</label> <input type="text" id="text ...

  3. linux下安装https证书

    https://www.aliyun.com/jiaocheng/165422.html

  4. Javascript类型转换的规则实例解析

    http://www.jb51.net/article/79916.htm 类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换.Java ...

  5. python的join()函数

    def join(self, iterable): # real signature unknown; restored from __doc__ """ S.join( ...

  6. Java接口 详解(二)

    上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...

  7. 分享知识-快乐自己:Struts2 - result标签的name属性和type属性

    1):result的name属性   例如:<result name="success">/pages/success.jsp</result> Strut ...

  8. javascript基础知识整理(不定时更新)

    1.js中真与假的定义: 真:true,非零数字,非空字符串,非空对象 假:false,数字零,空字符串,空对象(null),undefined 2.使用for循环对json进行循环操作 for(va ...

  9. 集训Day13

    我这个肥宅一点都不快乐嘤嘤嘤 bzoj3456 求n个点的无向简单连通图的个数 我们可以用容斥推出递推式 首先我们令为 于是有 这样就是可以用CDQ分治解决的一类递推式了 不是那么明显的变形一下得到 ...

  10. P2060 [HNOI2006]马步距离

    P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...