匿名函数也是函数的一种,不过匿名函数和其他函数不一样,匿名函数只能是一种表达式,不能有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的匿名函数 | 吴老二相关推荐

  1. python3生成器与迭代器_python3迭代器和生成器 | 吴老二

    迭代函数就是一个利用for...in来完成的一个过程,但是呢?在没说迭代函数之前我们需要了解一下什么是迭代器,什么是生成器,两者的区别是什么,先一个一个的学习. 迭代器 先学习一下什么是迭代器,迭代器 ...

  2. python函数返回多个变量_Python中接收函数多个返回结果的两种方法

    在Python中函数经常会返回多个值,今天我们一起来讲解一下接收多个函数返回值的方法 工具/原料 电脑 Python开发工具 方法/步骤 1 用def 代码创建一个函数,名称为func1 代码如下: ...

  3. python两位小数向上取整函数_python3中的函数如何实现小数向上取整

    python3中的函数如何实现小数向上取整 发布时间:2020-11-12 09:25:21 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关python3中的函数如何实现小数向上取 ...

  4. Go 学习笔记(16)— 函数(02)[函数签名、有名函数、匿名函数、调用匿名函数、匿名函数赋值给变量、匿名函数做回调函数]

    1. 函数签名 函数类型也叫做函数签名,可以使用 fmt.Printf("%T") 格式化参数打印函数类型. package mainimport "fmt"f ...

  5. python函数里面引用外部变量_Python基础 变量进阶

    目标 变量的引用 可变和不可变类型 局部变量和全局变量 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 ...

  6. python函数对变量的作用_python函数对变量的作用及遵循的原则

    1.全局变量和局部变量 全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效 局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在 例如: 1 n=1 #n是 ...

  7. python高阶函数看不懂_Python进阶:高阶函数的详细说明

    这篇文章讲述了Python进阶:高阶函数的详细说明有需要的朋友可以参考 函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单 ...

  8. 函数作用域的静态变量

    2019独角兽企业重金招聘Python工程师标准>>> 下面这段话来自百度百科: 静态局部变量属于静态存储方式,它具有以下特点:     (1) 静态局部变量在函数内定义,但不像自动 ...

  9. python定义函数的组成部分有_Python学习笔记之函数的定义和作用域实例详解

    本文实例讲述了Python函数的定义和作用域.分享给大家供大家参考,具体如下: 定义函数 默认参数: 可以向函数中添加默认参数,以便为在函数调用中未指定的参数提供默认值 # 如果调用 cylinder ...

最新文章

  1. HDU 2717 Catch That Cow(BFS)
  2. 学习之路-现代密码学基础-001
  3. 不用数学也能讲清贝叶斯理论的马尔可夫链蒙特卡洛方法?这篇文章做到了
  4. 初学python的体会心得-python初学心得
  5. html load方法的区别,jQuery  中的.load()、$get()、$,post()用法和区别
  6. SpringBoot+Vue+OpenOffice实现文档管理(文档上传、下载、在线预览)
  7. 【万能小说分析】【python】【词频分析】【词频统计】【jieba】【matplotlib】【wordcloud】【绘图】
  8. 【最全最详细】publiccms其他常用代码片段(内容、站点)
  9. Iptables-Fail2ban处理bind 非法***
  10. 求二叉树中结点个数代码java_求二叉树中第K层结点的个数
  11. 微信公众平台开发之留言板
  12. SQLite大漏洞!所有Chromium浏览器中招,安卓iOS应用也受殃及
  13. 飘云阁(PYG)番茄插件 弹窗清除
  14. MyEclipse10破解
  15. 水晶易表 oracle,水晶易表调用C#的WebService,返回数据集合的应用分析
  16. 第一章 .NET体系结构
  17. Quorum共识简析
  18. 别瞎学了,我的MySQL学习之路(超详细超硬核)
  19. Java经典三角形:杨辉三角
  20. 链路层--->ETH(以太网)协议

热门文章

  1. MIPS 的评估计算
  2. php 写入txt换行_php数组写入txt换行
  3. 交换机端口扫描工具小课堂
  4. Linux RS232/485/GPS 驱动
  5. 6. HTML和CSS
  6. Node-包管理工具整套下载使用讲解(nvm、npm、yarn、cnpm、pnpm、nrm)
  7. camera face
  8. 二叉树的遍历算法(一 递归算法)
  9. Python中 * 的用途
  10. FastAdmin 获取系统配置