#!/usr/bin/env python # -*- coding: utf-8 -*- # # functional.py # def foo(x,y,* args): sum = x + y for n in args: sum += n return sum #apply, filter, map, reduce def main(): print foo(1,2,3,4) print apply(foo,[1,2,3,4,5]) #apply是用于调用一个函数,函数本身也作为参数 #filter(func,seq),用函数判断序列中的元素是否合条件,为True,则选中,返回符合条件的list print filter(lambda x : x % 2, [x for x in range(10)]) #map(func,seq),用函数应用到序列的每个元素中,并将所有结果组合成list返回 print map(lambda x : x * 2, [x for x in range(10)]) print map(lambda x, y: x + y, [1,3,5], [2,4,6]) print map(lambda x, y: (x+y, x-y), [1,3,5], [2,4,6]) print map(None, [1,3,5], [2,4,6]) #reduce 可以视为 reduce(func,x,y,z...) <=> func(func(x,y),z)... print reduce(lambda x,y:x+y, [x for x in range(10)]) print [x for x in range(10)] return 0 if __name__ == '__main__': main()