什么是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中datetime常用时间处理方法
Jun 15 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Django实现组合搜索的方法示例
Jan 23 Python
解读python logging模块的使用方法
Apr 17 Python
python3+PyQt5实现文档打印功能
Apr 24 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
Python模块、包(Package)概念与用法分析
May 31 Python
python处理excel绘制雷达图
Oct 18 Python
使用 Python 遍历目录树的方法
Feb 29 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
python中pow函数用法及功能说明
Dec 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
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
删除数组元素实用的PHP数组函数
2008/08/18 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php实现异步数据调用的方法
2015/12/24 PHP
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python生成随机密码的方法
2017/06/16 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
python 5个实用的技巧
2020/09/27 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
优秀的教师个人的中文求职信
2013/09/21 职场文书
办理信用卡工作证明
2014/01/11 职场文书
总经理助理职责
2014/02/04 职场文书
幼儿园秋游感想
2014/03/12 职场文书
会计员岗位职责
2014/03/15 职场文书
图书馆标语
2014/06/19 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
同学聚会感言一句话
2015/07/30 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
python实现简单区块链结构
2021/04/25 Python
SpringBoot 集成Redis 过程
2021/06/02 Redis
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python