先放上3段代码
#coding:utf-8 #-----内建函数----- ''' 输入:函数func;列表seq。 功能:对seq的每个item都用给定的func做一次映射,生成新列表mapped_seq。 输出:列表mapped_seq。 说明:返回seq中所有元素的映射,与filter不同(filter返回seq中映射为真的元素)。 ''' def map(func, seq): mapped_seq = [] for eachItem in seq: mapped_seq.append(func(eachItem)) return mapped_seq print map(lambda x : x * 2,[1,2,3,4,[5,6,7]]) ''' 输入:二元函数bin_func;列表seq;初始值initial(默认为None)。 功能:通过二元函数bin_func,把列表seq缩减为单个的值,具体的做法如下: 取出seq中前2个元素并把它们传递给二元函数bin_func,求出一个值; 再把这个值与seq中下一个元素传给bin_finc,以此类推。 输出:最终的一个值res。 说明:若initial给定了值,则第一次把initial与seq的第一个值传递给bin_func。 ''' def reduce(bin_func, seq, initial = None): lseq = list(seq) if initial is None: res = lseq.pop(0) else: res = initial for eachItem in lseq: res = bin_func(res, eachItem) return res print reduce(lambda res, x: res + x, [1,2,3,4]) print reduce(lambda res, x: res + x, [1,2,3,4], 10) ''' 输入:函数bool_func,此函数只有一个参数; 列表seq。 功能:将列表seq中所有元素作为参数传递给函数bool_func, 将所有另函数返回真值的元素存入新列表。 输出:新列表filtered_seq。 说明:filter为过滤list,并返回list,绑定的函数为一个返回bool值的函数。 ''' def filter(bool_func, seq): filtered_seq = [] for eachItem in seq: if bool_func(eachItem): filtered_seq.append(eachItem) return filtered_seq print filter(lambda x: x % 2 == 0, [1,2,3,4,5,6])