一、关于lambda函数;
是Python编程语言中使用较多的一个内置函数。他可以在不指定函数名称的情况下定义一些简单逻辑的函数。可以定义一个函数给变量。
二、使用方法:
语法:
在Python中,lambda的语法形式如下:
lambda 参数: 表达式
其中,lambda是固定的关键字,参数和表达式由用户自定义:

  1. 这里的参数是参数列表,它的结构与Python中函数(function)的参数列表是一样的。具体来说,参数可以有非常多的形式。例如:
    a=1, b=2
    *args
    **kwargs
    等等!
  2. 表达式是一个关于参数的公式。表达式中的参数需要在参数中预定义,且表达式是单行的:
    None
    a + b
    sum(a)
    X if X >Y else Y
  3. 这里的lambda 参数: 表达式表示的是一个函数。这个函数叫做lambda函数,这个函数已参数为输入,表达式运行结果为输出,用完就没有了。不会继续存在

一些lambda函数示例:
lambda x, y: xy;函数输入是x和y,输出是它们的积xy
lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(注意要求输入参数必须能够进行加法运算)
lambda **kwargs: 1;输入是任意键值对参数,输出是1

常见用法(通常是和一些高阶函数组合使用!):
由于lambda本质上只有一种用法,那就是定义一个lambda函数。在实际中,根据这个lambda函数应用场景的不同,lambda函数有以下几种用法:
a.将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
例如,执行语句add=lambda x, y: x+y,定义了加法函数lambda x, y: x+y,并将其赋值给变量add,这样变量add便成为具有加法功能的函数。
例如,执行add(3,2),输出为5。
b.将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。
例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:time.sleep=lambda x:None。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)时,程序不会休眠3秒钟,而是什么都不做。
c. 将lambda函数作为其他函数的返回值,返回给调用者。
函数的返回值也可以是函数。例如return lambda x, y: x+y返回一个加法函数。这时,lambda函数实际上是定义在某个函数内部的函数,称之为嵌套函数,或者内部函数。对应的,将包含嵌套函数的函数称之为外部函数(闭包)。内部函数能够访问外部函数的局部变量。
d. 将lambda函数作为参数传递给其他函数(高阶函数)。
部分Python内置函数接收函数作为参数。典型的此类内置函数有filter/map/sorted。
高阶函数:
定义:
1.函数接受一个或多个函数作为参数传入
2.函数返回一个函数
以上两个条件满足一个条件就称之为高阶函数
filter函数:返回满足过滤要求的元素
用法:
filter(function/None, iterable)–>filter object
参数1:函数或空,要执行过滤的条件
参数2:可迭代对象,要被过滤的对象
返回值:filter函数执行完成后,会返回一个新的可迭代对象
此时lambda函数用于指定过滤列表元素的条件。
例如:
filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]

# filter函数
"""
作用:筛选可迭代对象iterable中的数据,返回一个可迭代对象,此可迭代对象将对iterable进行筛选
函数func将对iterable中的每个元素进行求值,返回False 丢弃,返回True则保留此数据```python
"""# 示例:求奇数
def isodd(x):return x % 2 == 1

打印10内的奇数

for x in filter(isodd, range(0, 10)):
print(x)

生成10以内的偶数,用filter实现,使用列表推导式

L = [x for x in filter(lambda x1: x1 % 2 == 0, range(0, 10))]
print(L)

sorted函数:排序
作用:讲原可迭代对象的数据进行排序,生成排序后的列表
格式:sorted(iterable, key = None, reverse = False)
iterable:可迭代对象
key:绑定函数,用来提供一个排序的依据
reverse 是否降序排列-从大到小,默认从小到大

用法:sorted(待排序的对象,key=xx, reverse=False)

此时lambda函数用于指定对列表中所有元素进行排序的准则。
示例:
L = [5, -2, -4, 0, 3, 1]
L2 = sorted(L)
L3 = sorted(L, reverse=True)
L.sort(reverse=True)
print(L)
print(L2)
print(L3)

按离0最近来排序

L4 = sorted(L, key=abs)
print(L4)
“”"
[-4, -2, 0, 1, 3, 5]
[5, 3, 1, 0, -2, -4]
[0, 1, -2, 3, -4, 5]
“”"


**map函数:将可迭代对象按函数执行返回新的迭代对象。**用法:map(func, *iterables)-->map objectfunc:要执行的函数,iterable:可迭代对象,func的输入参数作用:将iterable中的元素,作为输入放到func中执行,得到一个行的iterable1,并返回。注意,map不改变原iterable,而是返回一个新iterable1
此时lambda函数用于指定对列表中每一个元素的共同操作。
例如map(lambda x: x+1, [1, 2,3])将列表[1, 2, 3]中的元素分别加1,其结果[2, 3, 4]。
示例:```python
# 1.求1--9 的平方和
s = sum(map(lambda x: x ** 2, range(1, 10)))
print(s)
# 3.求1 ** 9 + 2 **8 + 3 **7 +。。。 + 9**1 的和
s3 = sum(map(pow, range(1, 10), range(9, 0, - 1)))
print(s3)
.    """
map函数:
用法:map(function,iterable,...)
function:接受一个函数名,用于对后面的可迭代对象进行操作;
iterable:接受一个或多个可迭代的序列,可以有多个可迭代对象
return:返回一个通过函数处理之后的map对象
map函数返回的是一个map对象,要获取里面的值,需要将map对象转化未list、tuple 等对象"""def calculator_add(x, y):return x + yres1 = list(map(calculator_add, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]))
print(res1)
# [2, 4, 6, 8, 10]# map 函数与lambda函数使用
# 一、返回列表
res2 = list(map(lambda x, y: x * y, [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]))
print(res2)
# [1, 4, 9, 16, 25]
# 二、返回元组
res3 = list(map(lambda x, y: (x * y, x + y), [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]))
print(res3)
# [(1, 2), (4, 4), (9, 6), (16, 8), (25, 10)]# map 函数传入function。可以将多个列表相同位置的元素归并到一个元组
# 示例:
res4 = (list(map(lambda x, y: (x, y), [1, 2, 3, 4, 5], [1, 2, 3, 4, 5])))
print(res4)
# [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]# map可以直接将字符串转换为列表/元组
res5 = tuple(map(int, "123456789"))
res6 = list(map(int, "987654321"))
print(res5)
print(res6)
# (1, 2, 3, 4, 5, 6, 7, 8, 9)
# [9, 8, 7, 6, 5, 4, 3, 2, 1]# map函数可以获取字典中的key,放到列表、元组中
res7 = list(map(str, {"name": "xiaoli", "age": 20, "gender": "girl"}))
print(res7)
# ['name', 'age', 'gender']

Reference:https://blog.csdn.net/quanlingtu1272/article/details/95482253?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160269214819724838547536%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160269214819724838547536&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-95482253.pc_first_rank_v2_rank_v28&utm_term=python+map&spm=1018.2118.3001.4187
(个人学习记录。也参考了一些博文,还有一个博主的链接找不到了,如有问题,欢迎指正,共同进步)

python内置函数lambda函数常见用法相关推荐

  1. python内置的数学函数_Python数字和内置数学函数

    python内置的数学函数 In this section, we will be learning about Numbers and various Math functions availabl ...

  2. python内置数字类型转换函数_Python学习 Day2-2 Python3的基本数据类型、数据内置类型转换函数...

    Python3的基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...

  3. python内置高阶函数_map()函数~~内置的高阶函数

    ''' map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list, 并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如 ...

  4. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及

    Python--函数式编程.高阶函数及内置函数 函数式编程 一.不可变数据:不用变量保存状态不修改变量 二.第一类对象:函数即"变量" 1.函数名可以当做参数传递 2.返回值可以是 ...

  5. python内置字符串处理函数_Python内置的字符串处理函数

    生成字符串变量 str='python String function' 字符串长度获取:len(str) 例:print '%s length=%d' % (str,len(str)) 连接字符串 ...

  6. python高阶函数filter_Python进阶系列连载(13)——Python内置高阶函数filter(上)...

    前言 进阶部分连载继续~ 如果还没看过我的入门连载部分,先看: 当然,小编的免费入门课程已经有咯,看过连载的朋友可以看看视频再快速梳理一遍~ 前文传送门: filter filter是什么意思呢? 我 ...

  7. 2021-09-29 计算BMI值(国际上常用的衡量人体胖瘦程度的一个标准)(要保留多少位有效数字可以用python内置的 round 函数)

    """ BMI 指数是国际上常用的衡量人体胖瘦程度的一个标准,其算法是 m/h^2 (40 <= m <= 120, 1.4 <= h <= 2. ...

  8. fopen是python内置函数吗_Python内置的open函数,打开文件的时候可能会产生异常_学小易找答案...

    [简答题]模仿操作一回. 上传JPG. [单选题]关于唐.宋诗之间的差异,缪钺.钱钟书.启功等学者都曾有过论述,请问以下哪一项评论出自钱钟书的<谈艺录>? [单选题]"羌笛何须怨 ...

  9. Python内置四大数据结构之字典的介绍及实践案例

    Python字典的介绍及实践案例 一.字典(Dict)介绍 字典是Python内置的四大数据结构之一,是一种可变的容器模型,该容器中存放的对象是一系列以(key:value)构成的键值对.其中键值对的 ...

最新文章

  1. 信息系统分析与设计杨选辉_信息系统分析与设计(第2版)
  2. python学习之——利用urllib2抓取网页内容
  3. ICCV 2019 《Robust Change Captioning》论文笔记(数据集)
  4. 计算机科学基础第二版答案,浙江大学计算机科学基础课后习题参考答案new-PXY.doc...
  5. linux 5005端口,Linux配置防火墙端口 8080端口
  6. TypeScript 里的 unknown 和 never
  7. html双击变成可编辑,jquery 实现双击编辑并保存
  8. dockerHub国内镜像设置
  9. 微波网络归一化转移矩阵[a]导出散射矩阵[S]
  10. maven+springMvc+velocity
  11. autocad怎么用计算机,职称计算机AutoCAD实用技巧
  12. android gridview textview,gogo体育官方网站-gogo体育官方网站
  13. 苹果手机批量移动图标的小技巧
  14. 再看《西游记》——吴承恩眼中的现实社会是如何折射到《西游记》中的
  15. JavaScript 一些小妙用
  16. Python 关于时间处理之时间相减
  17. 怎么在Excel2003版中查找重复值
  18. WebRtC视频jitterbuffer原理机制
  19. Linux操作系统编程基础
  20. word设置不显示回车和英文下面的红色波浪线

热门文章

  1. 毕业生自传----一次大胆的尝试,作别亚信
  2. Win11如何搭建FTP服务器以实现快速传输文件?
  3. Python每日一练(3)-编程三种境界
  4. java1到n所有质数_实验一:实现求正整数1-N之间所有质数的功能,并进行测试。...
  5. html5 判断横竖屏,前端js横竖屏检测的4种方案
  6. [xdoj]1303jlz的刷题黑科技
  7. Codeforces Contest 1092 problem D1 Great Vova Wall (Version 1)
  8. 16 岁高中生开发「粤语编程」项目,在 GitHub 火了!
  9. Cloud Toolkit Release Notes
  10. 单链表操作10-带头结点的单链表逆置(个人学习笔记,仅供参考)