python lambda表达式及用法_Python中lambda表达式的常见用法
非常抱歉,昨天发的代码中有一处小错误,已通过留言的方式进行了纠正,详情请见详解Python列表推导式
lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数。lambda表达式只可以包含一个表达式,不允许包含其他复杂的语句,但在表达式中可以调用其他函数,并支持默认值参数和关键参数,该表达式的计算结果相当于函数的返回值。下面的代码演示了不同情况下lambda表达式的应用。
>>> f = lambda x, y, z: x+y+z
#把lambda表达式当做函数使用
>>> print(f(1, 2, 3))
6
#使用lambda表达式定义带有默认值参数的函数
>>> g = lambda x, y=2, z=3: x+y+z
>>> print(g(1))
6
#调用时使用关键参数
>>> print(g(2, z=4, y=5))
11
>>> L=[(lambda x: x**2), (lambda x: x**3), (lambda x: x**4)]
>>> print(L[0](2), L[1](2), L[2](2))
4 8 16
#lambda表达式可以作为字典的“值”
>>> D={'f1':(lambda: 2+3), 'f2':(lambda: 2*3), 'f3':(lambda: 2**3)}
>>> print(D['f1'](), D['f2'](), D['f3']())
5 6 8
>>> L=[1, 2, 3, 4, 5]
#没有名字的lambda表达式,作为函数参数
>>> print(map((lambda x: x+10), L))
[11, 12, 13, 14, 15]
>>> L
[1, 2, 3, 4, 5]
>>> def demo(n):
return n*n
>>> demo(5)
25
>>> a_list = [1, 2, 3, 4, 5]
#在lambda表达式中可以调用其他函数
>>> map(lambda x: demo(x), a_list)
[1, 4, 9, 16, 25]
#生成20个数,0-19
>>> data = list(range(20))
>>> print(data)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> import random
#随机打乱顺序
>>> random.shuffle(data)
>>> data
[4, 3, 11, 13, 12, 15, 9, 2, 10, 6, 19, 18, 14, 8, 0, 7, 5, 17, 1, 16]
#使用lambda表达式指定排序规则
>>> data.sort(key=lambda x: len(str(x)))
>>> data
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
#使用lambda表达式指定排序规则
>>> data.sort(key=lambda x: len(str(x)), reverse=True)
>>> data
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> from random import randrange
#使用列表推导式生成7行5列二维随机数据
#每个数字在[1,10)范围内
>>> lst = [[randrange(1, 10) for i in range(5)] for j in range(7)]
>>> for item in lst:
print(item)
[9, 9, 5, 6, 7]
[7, 3, 5, 5, 6]
[3, 5, 3, 5, 3]
[4, 7, 6, 9, 8]
[6, 4, 1, 4, 1]
[9, 7, 8, 9, 4]
[9, 1, 8, 6, 9]
#首先按第3列从小到大排序
#第3列一样的按第5列从小到大排序
>>> lst.sort(key=lambda item: (item[2], item[4]))
>>> for item in lst:
print(item)
[6, 4, 1, 4, 1]
[3, 5, 3, 5, 3]
[7, 3, 5, 5, 6]
[9, 9, 5, 6, 7]
[4, 7, 6, 9, 8]
[9, 7, 8, 9, 4]
[9, 1, 8, 6, 9]
本文内容节选自《Python程序设计》(第2版),董付国编著,清华大学出版社,2016年6月出版,2016年11月第二次印刷。
python lambda表达式及用法_Python中lambda表达式的常见用法相关推荐
- pythonelse用法_Python中else关键字的常见用法
Python中的else常见用法有三:选择结构.循环结构和异常处理结构. (1)选择结构 这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块. (2)循环结构 ...
- python中lambda()的用法_python中lambda()的用法
在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...
- python中sys用法_Python中sys模块功能与用法实例详解
Python中sys模块功能与用法.,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Pyth ...
- python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?
我知道python中的条件表达式是x if c else y,但是我在使用它时遇到了一些问题. 我有两个代码要比较. 代码1: 1 2 3 4 5 6 7 8def fun(p): if len(p) ...
- python scatter参数详解_Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- python中time函数用法_python中time tzset()函数实例用法
在时间的设置方面,为了能够跟系统时间有更好的区分,我们有时会借用一些函数方法来实现.就拿tzset()来说是设置时间的一种方法,其内在的变量依靠TZ的控制,如果没有设置TZ则以系统时间为准.接下来我们 ...
- python 遍历函数用法_python中enumerate函数遍历元素用法分析
本文实例讲述了python中enumerate函数遍历元素用法.分享给大家供大家参考,具体如下: enumerate函数用于遍历序列中的元素以及它们的下标 示例代码如下: i = 0 seq = [' ...
- python中内置函数的用法_python中str内置函数用法总结
大家在使用python的过程中,应该在敲代码的时候经常遇到str内置函数,为了防止大家搞混,本文整理归纳了str内置函数.1字符串查找类:find.index:2.字符串判断类:islower.isa ...
- python的含义和用法_python中列表的含义及用法
示例 列表是元素的集合,存储在一个变量中.列表中存储的元素类型没有限制,下面是列表的一个简单例子. students = ['bernice', 'arron', 'cody'] for studen ...
- python kwargs是什么参数_Python中*args 和 **kwargs的用法总结
对于大部分Python新手来说,*args和**kwargs这两个魔法变量需要花大量的时间来解释.那么它们到底是什么呢?在什么时候使用它们呢?要搞清楚这些问题,首先你要明白,其实并不是必须写成*arg ...
最新文章
- C++中构造函数调用构造函数
- 百度正在摆脱广告营收依赖!AI云增长64%成最大推动力
- 一文读懂深响年度大会,增长密码藏在这些关键词里
- html css 重复,CSS重复定义的问题请教_html/css_WEB-ITnose
- Oracle数据到MaxCompute乱码问题详解
- python3正则表达式判断ipv4_Python 正则表达式验证IPv4地址
- python数据格式化后导入数据库_MySQL导入格式化数据
- spine findBone
- 每天CookBook之Python-047
- DedeCms进行SEO优化全攻略
- qt王者荣耀皮肤抽奖器
- 2021数据治理工具图谱研究报告在线下载
- i3cpu驱动xp_Intel英特尔Core i3/Core i5/Core i7系列CPU核芯显卡驱动
- 数学建模—一元回归分析
- ubuntu 下星际译王词典下载地址
- 【NUC980开发板DIY项目大挑战】串口服务器
- Golang sqlx 使用 Where in 解决办法
- 页面置换算法(FIFO、第二次机会、LRU)
- 计算机开机键英语字母,电脑开机黑屏显示英文字母
- 命令行修改文件md5