下面代码简单举例介绍以下 lambda的用法。

  1. from functools import reduce
  2.  
  3. #1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
  4. #2 python lambda它只是一个表达式,而def则是一个语句。
  5. #匿名函数lambda
  6. num = lambda x,y : x+y
  7.  
  8. print("lambda")
  9. print(num(3,4))
  10.  
  11. #上面的代码可以使用 def 定义函数实现
  12.  
  13. def add(x,y):
  14. return x+y
  15. print("def")
  16. print(add(3,4))
  17.  
  18. '''
  19. 由上例可以看出
  20. lambda的一般形式是关键字lambda后面跟一个或多个参数,
  21. 紧跟一个冒号,以后是一个表达式。
  22. lambda是一个表达式而不是一个语句。
  23. 它能够出现在Python语法不允许def出现的地方。作为表达式,
  24. lambda返回一个值(即一个新的函数)。
  25. lambda用来编写简单的函数,而def用来处理更强大的任务。
  26.  
  27. '''
  28.  
  29. #lambda 使用举例
  30. #python2 的用法
  31. '''
  32. #python2 是如下写法,但是python 3中修改了写法。见如下写法
  33. foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
  34.  
  35. #
  36. print(filter(lambda x: x % 3 == 0, foo))
  37. #--[18, 9, 24, 12, 27]
  38. map_list = list()
  39. print(map(lambda x: x * 2 + 10, foo))
  40. #--[14, 46, 28, 54, 44, 58, 26, 34, 64]
  41. print(reduce(lambda x, y: x + y, foo))
  42. '''
  43.  
  44. #python 3 的用法
  45. #Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce  
  46.  
  47. foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
  48. num_list = list(filter(lambda x: x % 3 == 0, foo))
  49. print(num_list)
  50. #--[18, 9, 24, 12, 27]
  51. map_list = list(map(lambda x: x * 2 + 10, foo))
  52. print(map_list)
  53. #--[14, 46, 28, 54, 44, 58, 26, 34, 64]
  54.  
  55. '''
  56. reduce函数:
  57. 在Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里 用的话要 先引
  58. 入:
  59. '''
  60. print(reduce(lambda x, y: x + y, foo))
  61.  
  62. # 下面的代码主要是为了 体现lambda 的其他用法,可以传递参数。而不使用的时候 不能传递参数
  63.  
  64. # Button(top, text="计算", command=lambda: on_click(top, base_text)).pack()
  65. # top.mainloop()
  66.  
  67. # 这种 直接command = 方法名的方式,函数是不能传递参数的,所以为了能传递参数使用了上面的方法。
  68. # Button(top, text="计算", command= on_click).pack()

Python Lambda 的简单用法的更多相关文章

  1. python lambda表达式简单用法【转】

    python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...

  2. python lambda表达式简单用法

    习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 1 2 3 4 5 6 7 8 # 普通条件语句 if 1 == 1:     name = 'wupeiqi' else ...

  3. python timeit模块简单用法

    timeit模块提供了一种简便的方法来为Python中的小块代码进行计时. 模块调用函数,stmp为要测试的函数,setup为测试环境,number为运行次数 timeit.timeit(stmt=) ...

  4. python lambda匿名函数 用法

    语法 lambda argument_list: expression argument_list是参数列表 expression是一个关于参数的表达式.表达式中出现的参数需要在argument_li ...

  5. python,os.path简单用法

    #首先导入os包 import os#引入time模块是因为需要将浮点型的时间转为东八区时间 import time # basename(path),去掉路径名称,单独返回文件名 f = os.pa ...

  6. [Python]字典的简单用法

    Python中的字典与现实中字典类似,从字典中可以找到“鱼”字:鱼类是体被骨鳞.以鳃呼吸.通过尾部和躯干部的摆动以及鳍的协调作用游泳和凭上下颌摄食的变温水生脊椎动物.类比到Python的字典中,把“鱼 ...

  7. python 虚拟环境 venv 简单用法

    Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv.该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持.每一个虚拟环 ...

  8. Python - Django - Cookie 简单用法

    home.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. python模块turtle简单用法

    ##初始化turtle:t = turtle.Turtle() 或者 t = turtle.Pen()##查询turtle状态#位置t.position() #箭头朝向,箭头朝向按照顺时针或者逆时针偏 ...

随机推荐

  1. npm笔记和bower

    生成package.json文件的方式就是dos下进入该文件夹,然后执行 npm init Bower简单点儿说就是通过nodejs直接下载GitHub上的js源码 首先你得有node,这里就不多做介 ...

  2. ffmpeg超详细综合教程——摄像头直播

    本文的示例将实现:读取PC摄像头视频数据并以RTMP协议发送为直播流.示例包含了1.ffmpeg的libavdevice的使用2.视频解码.编码.推流的基本流程具有较强的综合性.要使用libavdev ...

  3. 多线程设计模式(二):Future模式

    一.什么是Future模型: 该模型是将异步请求和代理模式联合的模型产物.类似商品订单模型.见下图: 客户端发送一个长时间的请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据(相当于商品订 ...

  4. HDU 1878 欧拉回路(无向图的欧拉回路)

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. UEditor使用有感(红色),保存内容时,会自动添加p标签

    UEditor 介绍 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 1 入门部署 ...

  6. PHP文件操作(三)-文件的写入

    fwrite()  //对文件进行写入 fwrite(file,string,length)file:必选项,需要写入的文件string:必选项,规定要写入文件的字符串length:可选项,规定要写入 ...

  7. 最长上升子序列(LIS)

    最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS.排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了. 假设存在一个序列d[1..9] = ...

  8. Ubuntu16.04安装之后的几个设置

    Ubuntu16.04安装之后的几个设置 Ubuntu16.04界面很漂亮,但是安装之后,需要做如下几个简单的设置,这样用的时候会更加顺畅. 1.中文支持 在右上角有一个齿轮,点击->Syste ...

  9. OSCache-缓存过滤器CacheFilter

    用CashFilter实现页面级缓存. 在OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成pdf格式文件/报表 ...

  10. java基础之多线程一:概述

    概述: 进程有多条执行路径, 合成为: 多线程. 进程和线程的描述: 进程: 可执行程序(文件), 例如: .exe//可以把进程理解为一辆车. 一台电脑上可以有多个进程, 这些进程之间的数据是相互隔 ...