python中的高阶函数

高阶函数英文叫Higher-order function,是形参可以为函数的函数

map(fun, list)

map将传入的函数依次作用到序列(list)的每个元素,并把结果作为新的序列返回。

1
2
3
def f(x):
   return x*x
map(f, [1,2,3]) #也可以是tuple

结果:[1,4,9]

reduce(fun,list)

1、前两个元素带入函数fun
2、#1结果与第三个元素带入函数fun

1
2
3
def f(x, y):
   return x*y
reduce(f, [1,2,3]) #也可以是tuple

结果:6

filter(fun, list)

当fun带入序列中的元素返回为True时,留下这个元素。

1
2
3
def is_odd(x):
   return x % 2 == 1
filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])

结果: [1, 5, 9, 15]

sorted(list, fun)

定义,fun(a,b)

  • 如果认为 a < b 返回 -1
  • 如果认为 a = b 返回 0
  • 如果认为 a > b 返回 1
    按字符顺序排序,忽略大小写:
1
2
3
A = ['bse', 'Bea', 'de', 'Asf', 'asdf']
L = sorted(A, lambda x, y: cmp(x.lower(), y.lower()))
print L

结果: [‘asdf’, ‘Asf’, ‘Bea’, ‘bse’, ‘de’]

进一步阅读

0%