python之6-2高阶函数

1. map函数

  • map(函数A,字符串或者列表)
  • map函数的意思是将函数A依次作用到字符串的每个字符或者列表的每个元素.
  • 例如:
map(lambda x: x*x,[1,2])
[1, 4]

这里lambda是匿名函数,匿名函数的作用就是不用定义函数名.
格式:lambda 参数: exp
关于map函数,其实用的并不是太多,因为可以用列表解析来写,例如上面的等价于[x*x for x in range(1,3)]

2. reduce函数

  • reduce(函数A,字符串或者列表)
  • reduce函数的意思是将函数A依次作用到字符串的2个字符或者列表的2个元素.
  • 例如:
>>> reduce(lambda x,y: x+y,[1,2,3,4])
10

假设匿名函数名为a,那么上面就等价于 a(a(a(1,2),3),4)

3. sorted函数

  • 作用:比较字符串或者数值大小
  • 格式:sorted(列表,函数)
  • 例子:
def cmp_ignore_case(s1, s2):
    u1 = s1.upper()
    u2 = s2.upper()
    if u1 < u2:
        return -1
    if u1 > u2:
        return 1
return 0
>>> sorted(['about', 'bob', 'Zoo', 'Credit'], cmp_ignore_case)
['about', 'bob', 'Credit', 'Zoo']

4. 模拟map()函数

  • map()函数需要接收两个参数,一个函数参数,一个列表
def my_map( f, l ):
    print [ f(x) for x in l ]
def f1( x ):
    return x * x
my_map( f1, [ 1, 2, 3, 4, 5 ] )
posted @ 2014-07-17 15:40  星空刺  阅读(301)  评论(0编辑  收藏  举报