map() 会根据提供的函数对指定序列做映射.
第一个参数( function): 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表.第二个参数:需要处理的序列 #首字母大写: my_list = ['smith', 'edward', 'john', 'obama', 'tom'] def f(x): return x[0].upper() + x[1:] result = map(f, my_list) print(list(result))输出结果:
['Smith', 'Edward', 'John', 'Obama', 'Tom']
reduce() 函数会对参数序列中元素进行累计.
函数将一个数据集合中的所有数据进行下列操作:
用 function(有两个参数)先对集合中的第 1、2 个元素进行操作.将得到的结果 与 第三个参数 用 function 函数运算, 最后得到一个结果 # 计算列表中的累加和: import functools my_list = [1, 2, 3, 4, 5] def f(x1,x2): return x1 + x2 result = functools.reduce(f, my_list)#此处注意需要导入functools工具 print(result)输出结果:
15
filter() 函数用于过滤序列, 过滤掉不符合条件的元素, 返回一个 filter 对象, 如果要转换为列表, 可以使用 list() 来转换.
该接收两个参数, 第一个为函数, 第二个为序列, 序列的每个元素作为参数传递给函数进行判, 然后返回 True 或 False, 最后将返回 True 的元素放到新列表中.
a = [2, 4, 6, 8, 11] def f(x): if x % 2 == 0: return True if __name__ == '__main__': result = filter(f, a) print(list(result))#此处得用list转换下 # 15