lambda函数,内置map()函数及filter()函数
8.1 lambda函数
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函数)
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() -----映射
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()函数的更多相关文章
- set、def、lambda、内置函数、文件操作
set : 无序,不重复,可以嵌套 .add (添加元素) .update(接收可迭代对象)---等于批量 添加 .diffrents()两个集合不同差 .sysmmetric difference( ...
- 第三天 函数 三元运算 lambda表达式 内置函数 文件操作
面向过程: 直接一行一行写代码,遇到重复的内容复制黏贴. 不利于代码阅读 代码没有复用 面向对象 将代码块定义为函数,以后直接调用函数 增强了复用性 函数的定义方法 def 函数名(传递参数): 函数 ...
- python学习day11 函数Ⅲ (内置函数与lambda表达式)
函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # ...
- Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数 目录 Pycharm使用技巧(转载) Python第一天 ...
- python 匿名函数&内置函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数怎么定义匿名函数: cal = lambda x : x*x # cal是函数名,lambda是定义匿名函数的关键字 冒号前面的额x是参数即函数 ...
- python 函数--内置函数
一.内置函数 内置函数是python自带的一系列常用函数. 二.python3中内置函数 内置功能 abs() delattr() hash() memoryview() set() ...
- Python学习笔记014——迭代工具函数 内置函数enumerate()
1 描述 enumerate() 函数用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中. 2 语法 enumerate(sequ ...
- Python学习(五)函数 —— 内置函数 lambda filter map reduce
Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...
- Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...
随机推荐
- Dotfuscator 的使用方法
打开Dotfuscator工具,选择“Create New Project” 在Input选项中选择需要混淆的文件 把 Disable String Encryption 设为 NO,即启用字符串加密 ...
- Murano Weekly Meeting 2015.12.01
Meeting time: 2015.December.1st 1:00~2:00 Chairperson: Nikolay Starodubtsev, from Mirantis Meeting ...
- [Silverlight][linq to sql]不能找到linq to sql自动生成类型
最近在做Silverlight项目,结合使用了WCF RIA service,通过linq to sql自动生成model类型,使用起来非常方便.具体可见linq to sql之silverlight ...
- docker~service将容器日志输出到fluentd
我们把微小的服务发布到docker里,然后实现docker service启动它,保证了服务的高可用性,然后把服务产生的日志输出到fluentd,由它进行过滤和转发,存储到elasticsearch里 ...
- 创建weblogic受管理服务器和安全文件
启动 admin server Oracle/Middleware/user_projects/domains/base_domain/bin> startWebLogic.sh 1创建受管服务 ...
- 【密码学】CSP的概念
CSP加密服务提供者(Cryptographic Service Provider)具有一下几个特点: CSP是真正执行密码运算的独立模块 物理上一个CSP由两部分组成:一个动态连接库,一个签名文件 ...
- XStream xml转java对象2
<?xml version="1.0" encoding="UTF-8" ?> <person> <name>yunyun& ...
- 学习JVM-GC原理
1. 前言 Java和C++之间显著的一个区别就是对内存的管理.和C++把内存管理的权利赋予给开发人员的方式不同,Java拥有一套自动的内存回收系统(Garbage Collection,GC)简称G ...
- Javascript 学习之数组 Array
数组在Javascript中占有很重要的地位.任何控件开发离不开数组的使用. 构造函数 new Array( ) new Array(size) new Array(element0, element ...
- IntelliJ IDEA实时模板变量
返回由当前方法返回的值的类型IntelliJ IDEA 实时模板中的模板变量允许用户输入.扩展模板后,变量将作为输入字段显示在编辑器中. IntelliJ IDEA 声明实时模板变量 模板中的变量以下 ...