什么是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操作sqlite的CRUD实例分析
May 08 Python
python去掉行尾的换行符方法
Jan 04 Python
Python实现发送QQ邮件的封装
Jul 14 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
Scrapy框架使用的基本知识
Oct 21 Python
python 调用钉钉机器人的方法
Feb 20 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
解决python使用list()时总是报错的问题
May 05 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
Jun 22 Python
python爬虫使用正则爬取网站的实现
Aug 03 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数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
jQuery 使用手册(七)
2009/09/23 Javascript
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python动态文本进度条的实例代码
2020/01/22 Python
基于python 凸包问题的解决
2020/04/16 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
市场营销求职信范文
2014/02/21 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
党员承诺书格式
2014/05/21 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
挂靠协议书
2015/01/27 职场文书
同学聚会通知书
2015/04/20 职场文书
朋友离别感言
2015/08/04 职场文书
民事调解协议书
2016/03/21 职场文书