您的位置:首页 > 编程语言 > Python开发

零基础入门学习Python(12):lambda表达式、filter()和map()

2015-12-16 15:21 896 查看

零基础入门学习Python(12):lambda表达式、filter()和map()

匿名函数,使用lambda表达式构建一个函数对象

[code]>>> def test1(x):                      #普通函数
        return 2 * x + 1

>>> test1(5)
11
>>> lambda x : 2 * x + 1               #lambda表达式
<function <lambda> at 0x010538A0>
>>> f = lambda x : 2 * x + 1           #可以把lambda表达式赋给一个名字直接调用
>>> f(5)
11
>>> lambda x,y: x + y                  #lambda表达式可以有多个参数
<function <lambda> at 0x01053930>
>>> f = lambda x,y: x + y
>>> f(3,4)
7


下面介绍Python中两个常用的内置函数:filter()和map()

1、filter():过滤器,去掉非True的元素,带两个参数,第一个参数可以是None或者一个函数,第二个参数是一个可迭代对象,返回值是一个对象,可以利用list显示出来

[code]>>> filter(None,[-1,0,2,False,True])   #返回一个filter对象
<filter object at 0x025E3B50>
>>> list(filter(None,[-1,0,2,False,True]))  #第一个参数为None时,返回第二个参数中为真的元素
[-1, 2, True]
>>> f = lambda x: x%2
>>> list(filter(f,range(12)))          #这个过滤器的作用是返回不能被2整除的数
[1, 3, 5, 7, 9, 11]


2、map():映射,两个参数,第一个参数是一个函数,第二个参数是可大于一个的可迭代对象,返回可迭代对象元素在函数中计算得到的值,返回一个map对象

[code]>>> list(map((lambda x: x+2),range(3)))
[2, 3, 4]
>>> list(map((lambda x,y: x+y),range(3),range(5)))   #lambda函数需要两个参数,所以map()有两个可迭代对象,当计算完最短的可迭代对象中的元素时停止
[0, 2, 4]


零基础入门学习Python(11):内嵌函数、闭包和变量作用域
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: