python之高阶函数map()reduce()filter()

1.map()

map()是python内置的高阶函数(一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数【若返回值为该函数本身,则为递归】,满足其一则为高阶函数),它接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,返回一个新的list。

# -*- coding:utf-8 -*-
website = ["www.xx.com","www.baidu.com","bbs.xx.com"]
def wordCount(string):
    return len(string)
siteNameLength = map(wordCount,website)
print siteNameLength

结果:

[17, 13, 18]

2.匿名函数lambda()

lambda()匿名函数是指一类无需定义标识符(函数名)的函数或子程序。lambda函数的格式为:冒号前是参数,冒号后面是返回值。

# -*- coding:utf-8 -*-
website = ["www.xx.com", "bbs.xx.com", "docs.xx.com"]
siteNameLength = map(lambda string:len(string),website)
print siteNameLength

结果:

[17, 17, 18]

3.reduce()

reduce()函数首先把前两个元素传给函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数,函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。

print reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])

S = lambda x,y,z:x+y+z
print S(1,2,3)

结果:

15

6

注意:

  python3使用reduce函数时,需要从functools包导入(from functools import reduce)。

4.filter()

filter()函数用于过滤序列,过滤掉不符合条件的元素,返回迭代器对象(python2是列表)。

list2 = filter(lambda x:x%2==0, [1,2,3,4,5,6])
print(list(list2))

结果:

[2, 4, 6]
posted @ 2020-01-16 13:53  南山散人  阅读(171)  评论(0编辑  收藏  举报