什么是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装饰器decorator介绍
Nov 21 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
python flask实现分页的示例代码
Aug 02 Python
python 提取文件指定列的方法示例
Aug 07 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
Python PO设计模式的具体使用
Aug 16 Python
Python输出指定字符串的方法
Feb 06 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
Django+Celery实现定时任务的示例
Jun 23 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 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
mysql时区问题
2008/03/26 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python 字符串split的用法分享
2013/03/23 Python
python黑魔法之参数传递
2016/02/12 Python
Python中super()函数简介及用法分享
2016/07/11 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
对Python函数设计规范详解
2019/07/19 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
创业计划书撰写原则
2014/01/25 职场文书
预备党员公开承诺书
2014/05/28 职场文书
食品工程专业求职信
2014/06/15 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
初中生物教学反思
2016/02/20 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书