什么是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
介绍Python的Django框架中的QuerySets
Apr 20 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
python简单实现刷新智联简历
Mar 30 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
python and or用法详解
Jun 26 Python
python opencv实现证件照换底功能
Aug 19 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
Python嵌入C/C++进行开发详解
Jun 09 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
python读取mnist数据集方法案例详解
Sep 04 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
[EPIC] Larva vs Flash ZvT @ Crossing Field [2017-10-09]
2020/03/17 星际争霸
PHP中执行cmd命令的方法
2014/10/11 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
详解JS函数重载
2014/12/04 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Python实现区域填充的示例代码
2021/02/03 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
HTML5使用DOM进行自定义控制示例代码
2013/06/08 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
小学生爱国演讲稿
2014/04/25 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
警告通知
2015/04/25 职场文书