什么是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中遍历文件的3个方法
Sep 02 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
python 寻找list中最大元素对应的索引方法
Jun 28 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
解决python使用list()时总是报错的问题
May 05 Python
Python绘图之柱形图绘制详解
Jul 28 Python
用Python将库打包发布到pypi
Apr 13 Python
python中的None与NULL用法说明
May 25 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 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
一个简洁的多级别论坛
2006/10/09 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
Python中的Django基本命令实例详解
2018/07/15 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python基于openpyxl生成excel文件
2020/12/23 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
CSS3 text shadow字体阴影效果
2016/01/08 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
电子商务专业学生的学习自我评价
2013/10/27 职场文书
超市业务员岗位职责
2013/12/05 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
努力工作保证书
2015/02/28 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis