8.1 lambda函数

作用及意义:
 1.没必要专门定义函数,给函数起名,起到精简的效果
 2.简化代码的可读性

def ds(x):
return 2 * x + 1 ds(5)
---11 g = lambda x : 2 * x + 1
g(5)
---11 def add(x,y):
return x + y add(3,4)
---7 g = lambda x,y : x + y
g(3,4)
---7

常用的内置函数(BIF函数)

①  filter()     ------过滤器
list (filter(None,[1,0,False,True]))
---[1, True] #把任何非True的内容给过滤掉了 #利用filter写一个奇数的过滤器
def odd(x):
return x % 2
temp = range(10)
show = filter(odd,temp)
list(show)
---[1,3,5,7,9] list (filter(lambda x : x % 2 , range(10)))
---[1,3,5,7,9] def aaa(x):
return x % 2 == 1
ret = list(filter(aaa, [1, 2, 54, 3, 6, 8, 17, 9]))
print(ret)
---[1, 3, 17, 9]
l = [15, 24, 31, 14]
def func(x):
return x > 20
print(list(filter(func,l))) print(list(filter(lambda x: x > 20, l))) # 比较两者差异

map()   -----映射

map有两个参数,一个函数,一个可迭代序列,将序列中的每一个元素作为函数参数进行运算加工,
直到可迭代序列中的每个元素加工完毕返回所有加工后的元素构成的新序列。
list(map(lambda x : x * 2, range(10)))
---[0, 2, 4, 6, 8, 10, 12, 14, 16, 18
l = [1, 2, 3, 4, 5]

def pow2(x):
return x*x print(list(map(pow2, l)))
---[1, 4, 9, 16, 25]
l = [1, 2, 3, 4]

def func(x):
return x*x
print(list(map(func, l))) print(list(map(lambda x : x*x, l))) # 比较两者差异
# 多个数组进行相加
li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
print(new_list)
---[12, 24, 36] # 这里在py2中结果是这个,在py3中是一个可迭代对象,需要调用list函数

reduce()函数

  也是存在两个参数,一个函数,一个可迭代序列,但是函数必须接收两个参数。作用是对于序列内所有元素进行累积操作

from functools import reduce    # 在py2中不需要从functools中导入,但是在py3中需要,他已经不属于一个内置函数,属于一个高阶函数
lst = [11,22,33]
func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
print('func2:', func2) ---func2: 66

例题:

# 现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

# 方法一
t1 = (('a'), ('b'))
t2 = (('c'), ('d'))
print(list(zip(t1, t2))) # [('a', 'c'), ('b', 'd')]
print(list(map(lambda t: {t[0], t[1]}, zip(t1, t2)))) # [{'a', 'c'}, {'d', 'b'}] # 方法二
print(list([{i,j} for i,j in zip(t1,t2)])) # [{'a', 'c'}, {'d', 'b'}] #方法三
func = lambda t1,t2:[{i,j} for i,j in zip(t1,t2)]
ret = func(t1,t2)
print(ret) # [{'a', 'c'}, {'d', 'b'}]

lambda函数,内置map()函数及filter()函数的更多相关文章

  1. set、def、lambda、内置函数、文件操作

    set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...

  2. 第三天 函数 三元运算 lambda表达式 内置函数 文件操作

    面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...

  3. python学习day11 函数Ⅲ (内置函数与lambda表达式)

    函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...

  4. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  5. python 匿名函数&内置函数

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数怎么定义匿名函数: cal = lambda x : x*x # cal是函数名,lambda是定义匿名函数的关键字 冒号前面的额x是参数即函数 ...

  6. python 函数--内置函数

    一.内置函数 内置函数是python自带的一系列常用函数. 二.python3中内置函数     内置功能     abs() delattr() hash() memoryview() set() ...

  7. Python学习笔记014——迭代工具函数 内置函数enumerate()

    1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...

  8. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  9. Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数

    本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...

随机推荐

  1. sort命令和对中文的处理

    使用示例:sort -k1,1nr xxxfile 需要指定起始列和结束列,否则可能排序错误   sort命令应用于中文时需要在sort前设置环境变量(以兼容C语言的标准): LC_COLLATE=C ...

  2. web service, wcf, wcf rest, web api之间的区别

    在.NET Framework中,有很多种技术可以创建基于http协议的服务,譬如说web service, wcf,wcf rest和web api等等.网上有很多的文章教我们如何开发.使用这几种技 ...

  3. DEDE日期调用小插件

    在日期文本框里面,点击的时候,下面出来一个和万年历一样的日期选择表,在dede里面,有一个现成的js小插件,直接调用就OK了... <input type="text" on ...

  4. 浅入分析Linux

    Linux 操作系统必须完成的两个主要目的 与硬件部分交互, 为包含在硬件平台上的所有底层可编程部件提供服务 为运行在计算机系统上的应用程序(即所谓的用户空间)提供执行环境 一些操作系统运行所有的用户 ...

  5. GitKraken使用教程-基础部分(9)

    10.  合并分支并解决冲突(conflict) 1) 合并分支 在代码管理过程中,切换分支或者同步服务器代码时,常常会出现代码冲突的情况,这种情况出现的原因一般是由于两个分支对同一个文件进行修改, ...

  6. Devexpress Xtrareport 打印报表

    需要引用 Using Devexpress.Xtrareport.UI: Using Devexpress.XtraPrinting.Localiztion 实例化报表,xtrareport my=n ...

  7. Discuz论坛UCenter无法登录问题修复方法完美解决无限刷新问题

    级20141225版本后,出现UC无法登录问题[完美]解决方法.自圣诞节发布 Discuz! X3.2 R20141225  小编手头多个站点也都在升级后出现了,后台登录[ UCenter]假死情况, ...

  8. 显卡(GPU)的基础知识

    显卡的性能指标有: 流处理器(SP)数量 核心频率 流处理器的架构 显存容量 显存频率 显存带宽 1. 流处理器的数量 把一个GPU当成是一个画画的工厂,其中流处理器的数量就是画师的数量,其数量自然是 ...

  9. css多行文本溢出显示省略号

    HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <met ...

  10. AndroidStudio多AppId多渠道快速打包

    一直感觉AndroidStudio没有eclipse快,但是最近由于遇到一个问题不得不将工程迁移到AndroidStudio上,迁移后之前在eclipse上所做的所有批量打包又得重新在AndroidS ...