python 之 匿名函数
5.14 匿名函数
- 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': '', 'salary': ''},
- {'name': 'wxx', 'age': '', 'salary': ''},
- {'name': 'lxx', 'age': '', 'salary': ''}
- ]
- 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':'','salary':''},
- {'name':'wxx','age':'','salary':''},
- {'name':'lxx','age':'','salary':''}
- ]
- 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':'','salary':''},
- {'name':'wxx','age':'','salary':''},
- {'name':'lxx','age':'','salary':''}
- ]
- 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']
python 之 匿名函数的更多相关文章
- python基础——匿名函数
python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...
- python基础——匿名函数及递归函数
python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...
- 孤荷凌寒自学python第二十天python的匿名函数与偏函数
孤荷凌寒自学python第二十天python的匿名函数与偏函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python为使函数的使用更加方便高效,可以使用两种特殊的函数简化语句书写. 一 ...
- 小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)
小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: ...
- Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...
- Python 之匿名函数和偏函数
匿名函数与偏函数 匿名函数 Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下: lambda arg1, arg2, … : e ...
- day16 python之匿名函数,递归函数
匿名函数 匿名函数格式 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任 ...
- python之匿名函数以及在内置函数中的使用
一. 匿名函数 Python使用 lambda 来创建匿名函数.所谓匿名函数,它与用 def 关键字定义的函数相比,没有函数名称. 1.1 匿名函数定义及特点 语法: lambda [para1, p ...
- python的匿名函数lambda解释及用法
lambda函数的语法只包含一个语句,如下: lambda arg1,arg2,.....argn:expression(主要是看下面的例子)代码示例: #-*- coding:utf-8 -* ...
- python lambda匿名函数
Python的一个很重要的方面就是:函数式编程(functional programming),即可以再原本传递参数和值的地方传递函数. lambda x: x%3 == 0 和以下等价: def b ...
随机推荐
- Wannafly挑战赛12 A 银行存款 【DP】【DFS】
链接:https://www.nowcoder.com/acm/contest/79/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- ajax 异步 跨域上传图片
客户端 <label for="text">名称</label> <input type="text" id="text ...
- linux下安装https证书
https://www.aliyun.com/jiaocheng/165422.html
- Javascript类型转换的规则实例解析
http://www.jb51.net/article/79916.htm 类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换.Java ...
- python的join()函数
def join(self, iterable): # real signature unknown; restored from __doc__ """ S.join( ...
- Java接口 详解(二)
上一篇Java接口 详解(一)讲到了接口的基本概念.接口的使用和接口的实际应用(标准定义).我们接着来讲. 一.接口的应用—工厂设计模式(Factory) 我们先看一个范例: package com. ...
- 分享知识-快乐自己:Struts2 - result标签的name属性和type属性
1):result的name属性 例如:<result name="success">/pages/success.jsp</result> Strut ...
- javascript基础知识整理(不定时更新)
1.js中真与假的定义: 真:true,非零数字,非空字符串,非空对象 假:false,数字零,空字符串,空对象(null),undefined 2.使用for循环对json进行循环操作 for(va ...
- 集训Day13
我这个肥宅一点都不快乐嘤嘤嘤 bzoj3456 求n个点的无向简单连通图的个数 我们可以用容斥推出递推式 首先我们令为 于是有 这样就是可以用CDQ分治解决的一类递推式了 不是那么明显的变形一下得到 ...
- P2060 [HNOI2006]马步距离
P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...