python3:lambda,map,filter内置函数

notes: 参考文档-(菜鸟教程)http://www.runoob.com/python/python-built-in-functions.html

参考文档-(妖白)http://blog.csdn.net/qq_24753293/article/details/78337818

一.lambda()

描述:

简化def函数

实例:

A=lambda x:x+1
理解为:
def A(x):
    return x+1
冒号左边→想要传递的参数
冒号右边→想要得到的数(可能带表达式)

二.map()

描述:

map(function, iterable, ...)会根据提供的函数对指定序列做映射,返回迭代器

实例:

>>>def square(x) :            # 计算平方数
...     return x ** 2
...
>>> list(map(square, [1,2,3,4,5]))   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]

# 提供了两个列表,对相同位置的列表数据进行相加
>>> list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
[3, 7, 11, 15, 19]

#如果函数有多个参数, 但每个参数的序列元素数量不一样, 会根据最少元素的序列进行:
>>> listx = [1,2,3,4,5,6,7]       # 7 个元素
>>> listy = [2,3,4,5,6,7]         # 6 个元素
>>> listz = [100,100,100,100]     # 4 个元素
>>> list_result = map(lambda x,y,z : x**2 + y + z,listx, listy, listz)
>>> print(list(list_result))
[103, 107, 113, 121]

三.filter()

描述:

filter(function, iterable) 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新迭代器

实例:

#只有序列中的元素执行函数(is_odd)为true时,才被用于构建新的迭代器
>>> def is_odd(n):
...     return n%2 == 1
...
>>> newlist = filter(is_odd,[1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> print(newlist)
<filter object at 0x00000227B33F8198>
>>> print(list(newlist))
[1, 3, 5, 7, 9]

#用map函数模仿filter
list(map(lambda x:x-5 if x>5 else x,[4,5,6]))
[4, 5, 1]
#理解: if为true,执行lambda表达式,if为false,执行 else 表达式

#用map函数模仿filter,必须要有"else"
>>> list(map(lambda x:x-5 if x>5 ,[4,5,6]))
  File "<stdin>", line 1
    list(map(lambda x:x-5 if x>5 ,[4,5,6]))
                                 ^
SyntaxError: invalid syntax

原文地址:https://www.cnblogs.com/xiangchun/p/8605719.html

时间: 2024-08-29 11:31:25

python3:lambda,map,filter内置函数的相关文章

三元运算式、lambda表达式、内置函数map、reduce、filter以及yield生成器

一.三元运算(式) 对于一般简单的if else条件判断句可以用三元运算来表示 具体模式为: if condition:   expr1 else:   expr2 等价于: expr1 if condition else expr2 解释:如果if condition条件成立就执行expr1表达式,否则就执行else expr2表达式 示例① >>> if 2 == 2: ...    name = 'cool' ... else: ...    name ='hot' ...  &g

Python之lambda表达式和内置函数

lambda表达式其实就是简化的函数表达式. 它只用于处理简单逻辑, 它会自动return数据 通常定义一个函数,按照以下形式: def  func(arg):       return arg +1 result = func(100) print result 101 以上函数用lambda表达式可以这么写: func2 = lambda a: a+1 result = func2(100) print result 在lambda表达式中,func2 相当于函数表达式中的func,即函数的

【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数

lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. 1 def func1(): 2 return 123 3 4 result1 = func1() 5 print(result1) 6 # 正常定义一个函数 => 123 7 8 9 func2 = lambda: 123 10 result2 = func2() 11 print(result2)

python — lambda表达式与内置函数

目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): =====> func = lambda a1,a2:a1+a2 # 函数直接得到返回值,这里隐藏了return return a1+a2 简化 # 三元运算,为了解决简单的if else的情况,如: if 1 == 1: a = 123 else: a = 456 a = 123 if 1 == 1

lambda表达式+python内置函数

传统的定义函数方式如下 def f1(): return 123 lambda表达式定义函数 f2 = lambda : 123 python3的内置函数 1.abs 绝对值 i = abs(-11) print (i) 输出结果是11 abs = absolute 2,all 循环参数,如果每个元素都为真,则返回为真 r = all([True, True]) print (r) 在python中 0 () [] ''和 None是False(空值都是假的) r = all(["123&quo

lambda 表达式+python内置函数

#函数 def f1(a,b): retrun  a+b #lambda方式,形参(a,b):返回值(a+b) f2=lambda a,b : a+b 在一些比较简单的过程计算就可以用lambda python内置函数 abc 获取绝对值 all 循环对象,都为真就返回真否则为假 >>> li[1, 2, 3]>>> all(li)True #0为假 >>> li=[0,1,2,3]>>> all(li)False bool 真假判断

python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法

一.内置函数补充 1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() print(isinstance(obj, Foo)) #结果为True 2.issubclass(sub, super)检查sub类是否是 super 类的派生类 class Foo(object): pass class Bar(Foo): pass print(issubclass(Bar, Foo)) #结果为True

Day03---集合,函数,三目运算,lambda表达式,内置函数,文件操作

第一节,集合    除了之前学过的数据类型,int,str,bool,list,dict,tuple,还有一个基本数据类型-集合,集合是一组无序,不重复的序列.由于这个特性,所以集合的元素也可以作为字典的键. 1.集合的创建 cast = set() #创建空集合 2.集合的操作 add()  #一次只能添加一个元素 update()  #一次能添加多个元素 clear()  #清空一个集合 copy()  #拷贝一个集合 difference() #比较两个集合,生成一个新的前面存在后面不存在

Python【map、reduce、filter】内置函数使用说明

介绍下Python 中 map,reduce,和filter 内置函数的方法: 一:map map(...)     map(function, sequence[, sequence, ...]) -> list 说明: 对sequence中的item依次执行function(item),执行结果输出为list. 例子: >>> map(str, range(5))           [, , , , ]        >>>  add(n): n+>&