非常抱歉,昨天发的代码中有一处小错误,已通过留言的方式进行了纠正,详情请见详解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表达式的常见用法相关推荐

  1. pythonelse用法_Python中else关键字的常见用法

    Python中的else常见用法有三:选择结构.循环结构和异常处理结构. (1)选择结构 这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块. (2)循环结构 ...

  2. python中lambda()的用法_python中lambda()的用法

    在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...

  3. python中sys用法_Python中sys模块功能与用法实例详解

    Python中sys模块功能与用法.,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Pyth ...

  4. python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?

    我知道python中的条件表达式是x if c else y,但是我在使用它时遇到了一些问题. 我有两个代码要比较. 代码1: 1 2 3 4 5 6 7 8def fun(p): if len(p) ...

  5. python scatter参数详解_Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

  6. python中time函数用法_python中time tzset()函数实例用法

    在时间的设置方面,为了能够跟系统时间有更好的区分,我们有时会借用一些函数方法来实现.就拿tzset()来说是设置时间的一种方法,其内在的变量依靠TZ的控制,如果没有设置TZ则以系统时间为准.接下来我们 ...

  7. python 遍历函数用法_python中enumerate函数遍历元素用法分析

    本文实例讲述了python中enumerate函数遍历元素用法.分享给大家供大家参考,具体如下: enumerate函数用于遍历序列中的元素以及它们的下标 示例代码如下: i = 0 seq = [' ...

  8. python中内置函数的用法_python中str内置函数用法总结

    大家在使用python的过程中,应该在敲代码的时候经常遇到str内置函数,为了防止大家搞混,本文整理归纳了str内置函数.1字符串查找类:find.index:2.字符串判断类:islower.isa ...

  9. python的含义和用法_python中列表的含义及用法

    示例 列表是元素的集合,存储在一个变量中.列表中存储的元素类型没有限制,下面是列表的一个简单例子. students = ['bernice', 'arron', 'cody'] for studen ...

  10. python kwargs是什么参数_Python中*args 和 **kwargs的用法总结

    对于大部分Python新手来说,*args和**kwargs这两个魔法变量需要花大量的时间来解释.那么它们到底是什么呢?在什么时候使用它们呢?要搞清楚这些问题,首先你要明白,其实并不是必须写成*arg ...

最新文章

  1. C++中构造函数调用构造函数
  2. 百度正在摆脱广告营收依赖!AI云增长64%成最大推动力
  3. 一文读懂深响年度大会,增长密码藏在这些关键词里
  4. html css 重复,CSS重复定义的问题请教_html/css_WEB-ITnose
  5. Oracle数据到MaxCompute乱码问题详解
  6. python3正则表达式判断ipv4_Python 正则表达式验证IPv4地址
  7. python数据格式化后导入数据库_MySQL导入格式化数据
  8. spine findBone
  9. 每天CookBook之Python-047
  10. DedeCms进行SEO优化全攻略
  11. qt王者荣耀皮肤抽奖器
  12. 2021数据治理工具图谱研究报告在线下载
  13. i3cpu驱动xp_Intel英特尔Core i3/Core i5/Core i7系列CPU核芯显卡驱动
  14. 数学建模—一元回归分析
  15. ubuntu 下星际译王词典下载地址
  16. 【NUC980开发板DIY项目大挑战】串口服务器
  17. Golang sqlx 使用 Where in 解决办法
  18. 页面置换算法(FIFO、第二次机会、LRU)
  19. 计算机开机键英语字母,电脑开机黑屏显示英文字母
  20. 命令行修改文件md5

热门文章

  1. Android-StepsView
  2. 关于作者(《蓝调口琴指南》名作拙译)
  3. ubuntu下安装php环境
  4. 15.看板方法---启动看板变革
  5. 55.Linux/Unix 系统编程手册(下) -- 文件加锁
  6. 2.Linux 高性能服务器编程 --- IP 协议详解
  7. 114. PHP command line getopt
  8. 10. Javascript DOM节点
  9. jsp include参数传送接收与应用
  10. 几种常用 css3 选择器解释