当前位置: 首页 > news >正文

义乌搭建网站百度资源共享

义乌搭建网站,百度资源共享,西安网站建设云阔网络熊掌号,域名注册个人还是企业的好Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数) 目录 Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)一、匿名函数的定义二、匿名函数的特征三、匿…

Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)

目录

  • Python 程序设计入门(014)—— Python 的 Lambda 函数(匿名函数)
    • 一、匿名函数的定义
    • 二、匿名函数的特征
    • 三、匿名函数的常见用法
        • 1、命名后调用
        • 2、直接调用
        • 3、将 Lambda 函数作为参数传递给其他函数(一般赋予 key 参数)
        • (1)max() 函数
        • (2)sorted() 函数

一、匿名函数的定义

Lambda 函数是函数式编程中的核心概念之一。Python 提供了一种简单的方法来定义 lambda 函数。匿名函数可以在不定义函数的情况下通过一行代码实现高效的函数功能。匿名函数可以在表达式中直接使用,非常方便。匿名函数的语法格式如下:

lambda [arguments] : expression

说明:

(1)arguments:形参列表,多个形参用逗号隔开,也可以不带参数。

形参列表的形式如下:

a, b
a=1, b=2
*args
**kwargs
a, b=1, *args

(2)expression:函数返回值的表达式,表达式只能有一个。

表达式的形式如下:

6
a + b
sum(b)
6 if a >10 else 7

(3)lambda 返回值是一个函数的地址,也就是函数对象。

例如:

fadd = lambda x,y:x+y
print(fadd)
print(fadd(3,2))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
<function <lambda> at 0x00000266BFC99EE0>
5

二、匿名函数的特征

(1)Lambda 函数是匿名的

所谓匿名函数,通俗地说就是没有名字的函数。

(2)Lambda 函数有输入和输出

输入是传入到参数列表 [arguments] 的值,输出是根据表达式 expression 计算得到的值。

(3)Lambda 函数拥有自己的命名空间

不能访问自己参数列表之外或全局命名空间里的参数,只能完成非常简单的功能。

常见的 Lambda函数示例:

lambda x, y: x+y			# 函数的输入为x和y,输出是它们的和:x+y
lambda *args: sum(args)		 # 输入是任意个数参数,输出是它们的和
lambda **kwargs: 6			# 输入是任意键值对参数,输出是6

三、匿名函数的常见用法

1、命名后调用

如果我们只需要一个简单的函数,lambda 是一个很好的选择,可以被看作是定义函数的一种更简单的方法。我们可以给它一个名称,并像普通函数一样使用它。调用的形式如下:

fun_name = lambda arguments : expression
fun_name(arguments)

例如:

fun_perimeter = lambda r:3.14 * r * 2
fun_area = lambda r:3.14 * r ** 2
print("圆的周长:",fun_perimeter(5))
print("圆的面积:",fun_area(5))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
圆的周长: 31.400000000000002
圆的面积: 78.5

2、直接调用

直接调用 lambda 函数的语法格式如下:

(lambda arguments : expression)(arguments)

例如:

print("圆的周长:",(lambda r:3.14 * r * 2)(5))
print("圆的面积:",(lambda r:3.14 * r ** 2)(5))运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
圆的周长: 31.400000000000002
圆的面积: 78.5

3、将 Lambda 函数作为参数传递给其他函数(一般赋予 key 参数)

(1)max() 函数

max() 函数返回给定参数的最大值,参数可以为序列。max() 函数的语法格式如下:

max( x, y, z, .... )说明:返回给定参数的最大值

例如:由 Lambda 函数决定是按元组的哪一个值排序。

num = [(100, 2.5), (150, 0.2), (80, 3.4), (120, 1.8)]
y = max(num, key=lambda x: x[0])   # 按元组的第1个值排序取最大值
print(y)
y = max(num, key=lambda x: x[1])   # 按元组的第2个值排序取最大值
print(y)运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
(150, 0.2)
(80, 3.4)

(2)sorted() 函数

sorted() 函数对所有可迭代的对象进行排序操作。sorted() 函数的语法格式如下:

sorted(iterable, key=None, reverse=False)
参数说明:
(1)iterable:可迭代对象。
(2)key:指定用来进行比较的元素,指定可迭代对象中的一个元素进行排序。
(3)reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)。
(4)返回值:返回重新排序的列表。

sort 与 sorted 区别:

(1)sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

(2)list 的 sort 方法是对已经存在的列表进行操作。而 sorted 函数返回的是一个新的 list,而不是在原来的基础上进行的操作。

例1:对列表的操作

num = [2,3,22,102,-87,11,-23]
print(sorted(num))  # 升序排列
print(sorted(num,key=lambda x :abs(x)))  # 按绝对值升序排列,参数x接收的是列表的元素
stu = ["Jerry","Mark","tom","Black","zhangping","Liugang","WANGLIN"]
print(sorted(stu))   # 对名字排序(区分大小写)
print(sorted(stu,key=str.lower))   # 对名字排序(转换为小写后排序,即:不区分大小写)
print(sorted(stu,key=lambda x:x.lower()))   # 作用同上
print(sorted(stu,key=lambda x:len(x)))      # 按字符串的长度排序
# 参数x接收的是列表的元素,参数x接收的是列表的元素,参数x接收的是列表的元素
lang = [(11,"java"),(101,"go"),(201,"c"),(17,"vb"),(21,"c++")]
print(sorted(lang,key=lambda x:x[0]))  # 按列表中的元组的第一列排序
print(sorted(lang,key=lambda x:x[1]))  # 按列表中的元组的第二列排序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
[-87, -23, 2, 3, 11, 22, 102]
[2, 3, 11, 22, -23, -87, 102]
['Black', 'Jerry', 'Liugang', 'Mark', 'WANGLIN', 'tom', 'zhangping']
['Black', 'Jerry', 'Liugang', 'Mark', 'tom', 'WANGLIN', 'zhangping']
['Black', 'Jerry', 'Liugang', 'Mark', 'tom', 'WANGLIN', 'zhangping']
['tom', 'Mark', 'Jerry', 'Black', 'Liugang', 'WANGLIN', 'zhangping']
[(11, 'java'), (17, 'vb'), (21, 'c++'), (101, 'go'), (201, 'c')]
[(201, 'c'), (21, 'c++'), (101, 'go'), (11, 'java'), (17, 'vb')]

例2:对字典的操作

lang = {11:"java",101:"go",201:"c",17:"vb",21:"c++"}
print(lang)
print(sorted(lang.items(),key=lambda x:x[0]))  # 按字典的 key 排序
print(sorted(lang.items(),key=lambda x:x[1]))  # 按字典的 value 排序运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
{11: 'java', 101: 'go', 201: 'c', 17: 'vb', 21: 'c++'}
[(11, 'java'), (17, 'vb'), (21, 'c++'), (101, 'go'), (201, 'c')]
[(201, 'c'), (21, 'c++'), (101, 'go'), (11, 'java'), (17, 'vb')]
http://www.shuangfujiaoyu.com/news/36508.html

相关文章:

  • 温州专业网站建设推广seo海外推广
  • xuzhou网站制作襄阳百度开户
  • 网站代码怎么做seo 页面
  • 网站建站要求的磁力搜索引擎
  • 什么行业必须做网站沈阳网站关键词优化多少钱
  • 做网站写代码好还是模板广东网站seo策划
  • 做包装一般看什么网站360站长平台
  • 商业网站建设案例课程视屏下载苏州网站建设制作公司
  • 美国网站服务器app下载注册量推广平台
  • 泉州网站开发企业关键词推广价格
  • 在那里做网站百度安装app
  • 网页游戏网站开发产品seo标题是什么
  • 深圳市龙岗区做网站的公司网络营销的方式与手段
  • 开封做网站免费发布推广信息的软件
  • 株洲网站建设的企业chatgpt 网站
  • 如何上传视频到公司网站网络推广营销网
  • 做甜品网站栏目seo网站诊断流程
  • 厦门中国建设银行招聘信息网站seminar
  • 杭州网站开发公司排名seo快速排名培训
  • ie浏览器打开建设银行网站拉新人拿奖励的app
  • 泰国做网站互联网金融
  • 做企业网站流程seo服务外包
  • 民权做网站的公司电商网
  • 赚钱小程序东莞网络优化公司
  • 北京国贸网站建设公司找资源最好的是哪个软件
  • 深圳ui设计培训seo和sem的区别是什么?
  • 做网站seo整站优化报价
  • 新乡市红旗区建设局网站推广策划书模板范文
  • 先做公众号在做网站天猫seo搜索优化
  • 张家界网站建设方案电商引流推广方法