先放上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])
本文介绍了Python中用于操作序列的三个函数:map、reduce和filter。详细解释了每个函数的功能、用法及示例代码,帮助读者理解如何高效地进行数据处理。
612

被折叠的 条评论
为什么被折叠?



