python匿名函数可以赋值给变量_python3的匿名函数 | 吴老二
匿名函数也是函数的一种,不过匿名函数和其他函数不一样,匿名函数只能是一种表达式,不能有return,返回值就是表达式的结果。匿名函数的关键词就是lambda,可以结合其他的函数一起使用,匿名函数的好处就是简单,不需要对函数进行定义,在调用时,只能先赋值给变量后才可以调用匿名函数返回结果。看下面的例子:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
def wulaoer(a,b):
return a * b
wolf = lambda a,b: a * b
print("普通函数直接调用,返回结果:",wulaoer(2,7))
print("匿名函数赋值给变量,返回结果:",wolf(2,5))
打印结果:
普通函数直接调用,返回结果: 14
匿名函数赋值给变量,返回结果: 10
这个是普通的匿名函数直接转换,匿名函数只能赋值给变量后才可以调用,不能直接调用,匿名函数只能使用简单的表达式,下面看稍微比较复杂一点的匿名函数表达式的例子:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
def devops(x,y):
if x > y:
return x ** y
else:
return x / y
golong=lambda x,y:x ** y if x > y else x / y
print("三元运算函数,,返回结果:",devops(2,7))
print("三元运算函数转成匿名函数,返回结果:",golong(2,7))
打印结果:
三元运算函数,,返回结果: 0.2857142857142857
三元运算函数转成匿名函数,返回结果: 0.2857142857142857
匿名函数在调用的时候判断前面式True,后面是False,所以这个顺序需要表达清楚,lambda相当于函数中的def,x,y相当于函数的参数,后面是函数的表达式,参数和表达式之间使用了":"进行分割,后面就是匿名函数的表达式,匿名函数比较常用,下面看一下匿名函数的使用场景。
匿名函数使用的场景
匿名函数可以接受多个参数,也可以接受其他的函数,这里说的是lambda结合map函数,先看下面的例子:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5,6]
for t,i in enumerate(python3):
python3[t]=i*i
print("for循环遍历列表元素平方:",python3)
python3=[1,2,3,4,5,6]
DevOps=list(map(lambda x:x*x,python3))
print("匿名函数结合map函数:",DevOps)
打印结果:
for循环遍历列表元素平方: [1, 4, 9, 16, 25, 36]
匿名函数结合map函数: [1, 4, 9, 16, 25, 36]
匿名函数作为一个参数,传到map函数中,直接返回结果,上面赋值给一个变量,不过也不是函数,只是一个变量值。可以直接打印不需要调用。
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5]
nginx= 1
for i in python3:
nginx*=i
print("序列累计结果:",nginx)
from functools import reduce
DevOps = reduce(lambda x,y: x * y ,python3)
print("匿名函数结合reduce函数:",DevOps)
打印结果:
序列累计结果: 120
匿名函数结合reduce函数: 120
匿名函数作为一个参数,传入到reduce函数中,对匿名函数返回的结果进行求积。所以,最终reduce的函数会对匿名函数返回的所有序列进行累积计算操作。下面看一下filter函数:
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[1,2,3,4,5]
DevOps=list(filter(lambda x:x % 2 == 1,python3))
print("只保留奇数:",DevOps)
DevOps=list(filter(lambda x:x % 2 == 0,python3))
print("只保留偶数:",DevOps)
linux=list(range(100,200))
DevOps=list(filter(lambda x:int(str(x))==int(str(x)[::-1]),linux))
print("匿名函数结合filter函数,找出回力数:",DevOps)
打印结果:
只保留奇数: [1, 3, 5]
只保留偶数: [2, 4]
匿名函数结合filter函数,找出回力数: [101, 111, 121, 131, 141, 151, 161, 171, 181, 191]
filter函数会对传入的参数进行筛选,这里使用的偶数和奇数都是针对filter函数中作为参数的匿名函数的所有元素进行了一个判断,然后筛选。最后一个是对所有元素进行一个去掉筛选。
#!/usr/bin/python3
#coding:utf-8
#~~~~~~~~~~~~www.wulaoer.org 吴老二个人博客~~~~~~~
python3=[-2,5,9,-10,6]
DevOps=sorted(python3,key=lambda x:abs(x))
print("根据据绝对值进行排序",DevOps)
python3=["golong","nginx","jenkins","mysql","tomcat"]
DevOps=sorted(python3,key=lambda x:x[0])
print("根据首字母进行排序",DevOps)
python3= [('golong', 75), ('nginx', 92), ('mysql', 66), ('jenkins', 88)]
DevOps=sorted(python3, key = lambda x : x[0])
print("根据名字进行排序",DevOps)
DevOps=sorted(python3, key = lambda x : x[1], reverse=True)
print("根据成绩进行排序:",DevOps)
输出结果:
根据据绝对值进行排序 [-2, 5, 6, 9, -10]
根据首字母进行排序 ['golong', 'jenkins', 'mysql', 'nginx', 'tomcat']
根据名字进行排序 [('golong', 75), ('jenkins', 88), ('mysql', 66), ('nginx', 92)]
根据成绩进行排序: [('nginx', 92), ('jenkins', 88), ('golong', 75), ('mysql', 66)]
这个是针对sorted函数进行一个排序,作为匿名函数的参数,出入的是一个列表或者远足,真对排序时使用了排序方式,reverse,排序方向默认时从小到大,reverse=True是从大到小的排序,这就是匿名函数的用法,和相关场景涉及到的使用方法。
python匿名函数可以赋值给变量_python3的匿名函数 | 吴老二相关推荐
- python3生成器与迭代器_python3迭代器和生成器 | 吴老二
迭代函数就是一个利用for...in来完成的一个过程,但是呢?在没说迭代函数之前我们需要了解一下什么是迭代器,什么是生成器,两者的区别是什么,先一个一个的学习. 迭代器 先学习一下什么是迭代器,迭代器 ...
- python函数返回多个变量_Python中接收函数多个返回结果的两种方法
在Python中函数经常会返回多个值,今天我们一起来讲解一下接收多个函数返回值的方法 工具/原料 电脑 Python开发工具 方法/步骤 1 用def 代码创建一个函数,名称为func1 代码如下: ...
- python两位小数向上取整函数_python3中的函数如何实现小数向上取整
python3中的函数如何实现小数向上取整 发布时间:2020-11-12 09:25:21 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关python3中的函数如何实现小数向上取 ...
- Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]
1. 函数签名 函数类型也叫做函数签名,可以使用 fmt.Printf("%T") 格式化参数打印函数类型. package mainimport "fmt"f ...
- python函数里面引用外部变量_Python基础 变量进阶
目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...
- python函数对变量的作用_python函数对变量的作用及遵循的原则
1.全局变量和局部变量 全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效 局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在 例如: 1 n=1 #n是 ...
- python高阶函数看不懂_Python进阶:高阶函数的详细说明
这篇文章讲述了Python进阶:高阶函数的详细说明有需要的朋友可以参考 函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单 ...
- 函数作用域的静态变量
2019独角兽企业重金招聘Python工程师标准>>> 下面这段话来自百度百科: 静态局部变量属于静态存储方式,它具有以下特点: (1) 静态局部变量在函数内定义,但不像自动 ...
- python定义函数的组成部分有_Python学习笔记之函数的定义和作用域实例详解
本文实例讲述了Python函数的定义和作用域.分享给大家供大家参考,具体如下: 定义函数 默认参数: 可以向函数中添加默认参数,以便为在函数调用中未指定的参数提供默认值 # 如果调用 cylinder ...
最新文章
- HDU 2717 Catch That Cow(BFS)
- 学习之路-现代密码学基础-001
- 不用数学也能讲清贝叶斯理论的马尔可夫链蒙特卡洛方法?这篇文章做到了
- 初学python的体会心得-python初学心得
- html load方法的区别,jQuery 中的.load()、$get()、$,post()用法和区别
- SpringBoot+Vue+OpenOffice实现文档管理(文档上传、下载、在线预览)
- 【万能小说分析】【python】【词频分析】【词频统计】【jieba】【matplotlib】【wordcloud】【绘图】
- 【最全最详细】publiccms其他常用代码片段(内容、站点)
- Iptables-Fail2ban处理bind 非法***
- 求二叉树中结点个数代码java_求二叉树中第K层结点的个数
- 微信公众平台开发之留言板
- SQLite大漏洞!所有Chromium浏览器中招,安卓iOS应用也受殃及
- 飘云阁(PYG)番茄插件 弹窗清除
- MyEclipse10破解
- 水晶易表 oracle,水晶易表调用C#的WebService,返回数据集合的应用分析
- 第一章 .NET体系结构
- Quorum共识简析
- 别瞎学了,我的MySQL学习之路(超详细超硬核)
- Java经典三角形:杨辉三角
- 链路层--->ETH(以太网)协议