函数map()、filter()解析

By | 2017年2月21日

map()一共接收2个参数,一个是函数,一个是序列(iterable),map把函数作用在序列中的每个元素上,如

>> def f(x):
…     return x*x

>>> map(f,[1,2,3,4,5,6,7,8,9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]

也可以进行字符串转换,如

>> r
[1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> map(str,r)
[‘1’, ‘4’, ‘9’, ’16’, ’25’, ’36’, ’49’, ’64’, ’81’]

filter()常用于过滤序列,也接收2个参数,一个是函数,一个是序列(iterable),把函数作用于序列中的每个元素,根据返回值是true或者flase,确定元素的去留。

如在一个数字序列中,只保留基数。

>> a = range(1,10)
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> def f(x):
…     return x % 2 ==1

>>> b = filter(f,a)
>>> b
[1, 3, 5, 7, 9]
>>>

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注