什么是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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
python利用beautifulSoup实现爬虫
Sep 29 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
python爬取m3u8连接的视频
Feb 28 Python
对Python中gensim库word2vec的使用详解
May 08 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
实时获取Python的print输出流方法
Jan 07 Python
python 求10个数的平均数实例
Dec 16 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Django migrate报错的解决方案
May 20 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 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实现最简单的MVC框架实例教程
2014/09/08 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
javascript ES6中箭头函数注意细节小结
2017/02/17 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python易忽视知识点小结
2015/05/25 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python标准库inspect的具体使用方法
2017/12/06 Python
详解Python3的TFTP文件传输
2018/06/26 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
详解python 注释、变量、类型
2018/08/10 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
12月红领巾广播稿
2014/02/13 职场文书
新春寄语大全
2014/04/09 职场文书
员工年终自我评价
2014/09/14 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
鲁迅故里导游词
2015/02/05 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏