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

python基础学习之函数(3)-λ表达式,过滤器,map函数

2017-04-26 12:10 330 查看
λ表达式

在python中使用lambda表达式,方便使用匿名函数,省去了函数的定义,使代码更加精简。

例子:

>>> def ds(x):

   return 2*x+1

 

>>> ds(5)

11

 

怎么用λ表达式来实现呢?

>>> lambda x:2*x+1

<function <lambda> at0x00000000030B8840>

返回的是一个函数对象,然后用一个标签来获取其值即可。

>>> g = lambda x:2*x+1

>>> g(2)

5

 

对于一些比较抽象而且整个程序执行下来此函数执行次数很少,而且此函数很简单,则推荐使用lambda表达式。

不需要跳到定义部分查看的函数定义,查看代码简单方便。

 

 

 

过滤器filter

filter(function or None, iterable)

--> filter object

如果第一个参数是None ,则会过滤掉不是True的值。

例如:

>>> list(filter(None,[0,2,False]))

[2]

>>> filter(None , [1,0,False])

<filter object at 0x000000000301CE10>

返回的是一个过滤器对象

 

如果第一个参数是自己指定的函数,则可以指定过滤的方法,例如过滤出奇数。

>>> def odd(x):

         returnx%2

 

>>> temp = range(10)

>>> show = filter(odd,temp)

>>> list(show)

[1, 3, 5, 7, 9]

当x=1,3,5,7,9时odd函数才会返回True。

 

用lambda表达式怎么表示上述一段代码呢?

>>> list(filter((lambdax:x%2),range(10)))

[1, 3, 5, 7, 9]

 

 

map函数

map(func, *iterables) --> map object

将iterables里的值一个个在func里运行一次,生成一个map对象。(然后可以用list()来转换成List对象)

例子:

>>> list(map((lambdax:x*2),range(3,7)))

[6, 8, 10, 12]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息