什么是Python中的匿名函数


Posted in Python onJune 02, 2020

匿名函数

lambda x , y : x+y

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

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

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

f=lambda x,n:x ** n

print(f(2,3))

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

求工资最高的人:max

salaries={
  'egon':3000,
  'alex':100000000,
  'wupeiqi':10000,
  'yuanhao':2000
}
def get(k):
  return salaries[k]
print(max(salaries,key=get)) #'alex' 
print(max(salaries,key=lambda x:salaries[x]))
info = [
  {'name': 'egon', 'age': '18', 'salary': '3000'},
  {'name': 'wxx', 'age': '28', 'salary': '1000'},
  {'name': 'lxx', 'age': '38', 'salary': '2000'}
]
max(info, key=lambda dic: int(dic['salary']))
max([11, 22, 33, 44, 55])

求工资最低的人:min

salaries={
  'egon':3000,
  'alex':100000000,
  'wupeiqi':10000,
  'yuanhao':2000
}
print(min(salaries,key=lambda x:salaries[x]))  # 'yuanhao' 
 info=[
      {'name':'egon','age':'18','salary':'3000'},
      {'name':'wxx','age':'28','salary':'1000'},
      {'name':'lxx','age':'38','salary':'2000'}
    ]
min(info,key=lambda dic:int(dic['salary']))

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

salaries={
  'egon':3000,
  'alex':100000000,
  'wupeiqi':10000,
  'yuanhao':2000
}
alaries=sorted(salaries) # 默认按照字典的键排序
print(salaries)
# salaries=sorted(salaries,key=lambda x:salaries[x]) #默认是升序排
alaries=sorted(salaries,key=lambda x:salaries[x],reverse=True) #降序
print(salaries)
info=[
      {'name':'egon','age':'18','salary':'3000'},
      {'name':'wxx','age':'28','salary':'1000'},
      {'name':'lxx','age':'38','salary':'2000'}
    ]
l=sorted(info,key=lambda dic:int(dic['salary']))

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

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

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

import functools
v1 = ['wo','hao','e']
def func(x,y):
  return x+y
result = functools.reduce(func,v1) 
print(result)  # wohaoe
result = functools.reduce(lambda x,y:x+y,v1)
print(result)  # wohaoe
from functools import reduce
l=['my','name','is','alex','alex','is','sb']
res=reduce(lambda x,y:x+' '+y+' ',l)
print(res)
#my name is alex alex is sb

filter , 按条件筛选

result=filter(lambda x:x > 2,[1,2,3,4])
print(list(result))
v1 = [11,22,33,'asd',44,'xf']
# 一般做法
def func(x):
  if type(x) == int:
    return True
  return False
result = filter(func,v1)
print(list(result))   # [11,22,33,44]
# 简化做法
result = filter(lambda x: True if type(x) == int else False ,v1)
print(list(result))
# 极简做法
result = filter(lambda x: type(x) == int ,v1)
print(list(result))
names=['alex_sb','wxx_sb','yxx_sb','egon']
res=filter(lambda x:True if x.endswith('sb') else False,names)
res=filter(lambda x:x.endswith('sb'),names)
print(list(res))    #['alex_sb', 'wxx_sb', 'yxx_sb']
ages=[18,19,10,23,99,30]
res=filter(lambda n:n >= 30,ages)
print(list(res))    #[99, 30]
salaries={
  'egon':3000,
  'alex':100000000,
  'wupeiqi':10000,
  'yuanhao':2000
}
res=filter(lambda k:salaries[k] >= 10000,salaries)
print(list(res))      #['alex', 'wupeiqi']

内容扩展:

匿名函数调用

步骤一:将创建好的匿名函数通过一个变量来去接收。

步骤二:使用变量再去调用匿名函数。

举例

第一步: 创建一个匿名函数,作用是实现两个数的和。

lambda num1 , num2 : num1 + num2

第二步:使用一个变量来去接收这个匿名函数

sum = lambda num1 , num2 : num1 + num2

第三步:调用此匿名函数

sum(10 , 20)

到此这篇关于什么是Python中的匿名函数的文章就介绍到这了,更多相关Python匿名函数知识点总结内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中的高级数据结构详解
Mar 27 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
Python实现定时任务
Feb 08 Python
python如何定义带参数的装饰器
Mar 20 Python
解决python报错MemoryError的问题
Jun 26 Python
Python 通过打码平台实现验证码的实现
May 13 Python
Python使用统计函数绘制简单图形实例代码
May 15 Python
python保存字典和读取字典的实例代码
Jul 07 Python
Matplotlib绘制雷达图和三维图的示例代码
Jan 07 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
学习python需要有编程基础吗
Jun 02 #Python
python中if及if-else如何使用
Jun 02 #Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 #Python
python编写一个会算账的脚本的示例代码
Jun 02 #Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 #Python
什么是Python中的顺序表
Jun 02 #Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 #Python
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
解析PHP可变函数的经典用法
2013/06/20 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
JS 获取span标签中的值的代码 支持ie与firefox
2009/08/24 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
JavaScript中的eval()函数详解
2013/08/22 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
js实现数组转换成json
2015/06/26 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[03:30]完美盛典趣味短片 CSGO2019年度名场面
2019/12/07 DOTA
Python 开发Activex组件方法
2009/11/08 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python 定义只读属性的实现方式
2020/03/05 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
redis实现共同好友的思路详解
2021/05/26 Redis
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers