什么是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 图片验证码代码
Dec 07 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 Python
python一键升级所有pip package的方法
Jan 16 Python
Python反转序列的方法实例分析
Mar 21 Python
Django实现分页功能
Jul 02 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
使用python+whoosh实现全文检索
Dec 09 Python
python通过移动端访问查看电脑界面
Jan 06 Python
如何在django中实现分页功能
Apr 22 Python
Python Tornado核心及相关原理详解
Jun 24 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
PHP文件注释标记及规范小结
2012/04/01 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
PHP制作百度词典查词采集器
2015/01/29 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
nodejs开发微博实例
2015/03/25 NodeJs
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
[04:48]DOTA2亚洲邀请赛林书豪为VGJ加油
2017/04/01 DOTA
Python运用于数据分析的简单教程
2015/03/27 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
python 5个顶级异步框架推荐
2020/09/09 Python
Django多数据库联用实现方法解析
2020/11/12 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
Java语言程序设计测试题选择题部分
2014/04/03 面试题
土木工程毕业生推荐信
2013/10/28 职场文书
采购主管工作职责
2013/12/12 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
人民调解协议书范本
2014/10/11 职场文书
2014年手术室工作总结
2014/11/26 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
财务稽核岗位职责
2015/04/13 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python