Python3中的filter、map、reduce学习笔记

用法介绍

filter功能、用法介绍

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的迭代器对象。
该接收两个参数,第一个为判别函数,第二个为可迭代序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
1、filter的语法

filter(function, iterable)
"""
function: 判别函数
iterable:可迭代序列
"""

2、举例介绍
测试例子如下:

print(filter(lambda x: x > 2, range(5)))
print('-'*50)
#例1
print('例1输出结果为:')
for i in filter(lambda x: x > 2, range(5)):
	print(i)
print('-'*50)
#例2
def fun(x):
	return x>2
filter_ = list(filter(fun, range(5)))
print('例2输出结果为:')
print(filter_)

输出结果为:

<filter object at 0x000000000975C160>
--------------------------------------------------
例1输出结果为:
3
4
--------------------------------------------------
例2输出结果为:
[3, 4]

从上面结果可以看出,filter输出的结果为迭代器对象,我们可以遍历它,也能直接把它转化为list.

map功能、用法介绍

map() 函数用于映射序列,将可迭代序列做对应的映射处理,返回迭代器对象。
该接收两个参数,第一个为映射函数,第二个及以后的为可迭代序列,各序列的每个元素分别作为参数传递给函数进行计算,最后返回计算结果。
1、map的语法

map(function, iterable1, iterable2,...)
"""
function: 映射函数
iterable:可迭代序列
"""

2、举例介绍
测试例子如下:

print(map(lambda x: x + 2, range(5)))
print('-'*50)
#例1
print('例1输出结果为:')
add2 = list(map(lambda x,y: x + y, [1,2,3],[1,2,3,4]))
print(add2)
print('-'*50)
#例2
def fun(x,y,z):
	return x+y+z
add3 = list(map(fun, [1,2,3],[1,2,3],[1,2,3]))
print('例2输出结果为:')
print(add3)

输出结果为:

<map object at 0x00000000097C6A90>
--------------------------------------------------
例1输出结果为:
[2, 4, 6]
--------------------------------------------------
例2输出结果为:
[3, 6, 9]

reduce功能、用法介绍

reduce() 函数用于处理序列,将可迭代序列中的元素进行计算,返回迭代器对象。
该接收两个参数,第一个为处理函数,第二个为可迭代序列,依次将序列的每个元素分别作为参数传递给函数进行计算,最后返回计算结果。
1、reduce的语法

reduce(function, iterable1, initial=None))
"""
function:  处理函数
iterable: 可迭代序列
initial: 为初始值
"""

2、举例介绍
测试例子如下:

#例1
from functools import reduce
print('例1输出结果为:')
add1 = reduce(lambda x,y: x + y, [1,2,3,4,5])
print(add1)
print('-'*50)
#例2
def fun(x,y):
	return x+y
add2 = reduce(fun, [1,2,3,4,5],5)
print('例2输出结果为:')
print(add2)

输出结果为:

例1输出结果为:
15
--------------------------------------------------
例2输出结果为:
20

注意map和reduce的区别,map将可迭代对象中的元素依次映射为新的元素;reduce将可迭代对象中的元素循环计算,得出结果。reduce(fun, [1,2,3,4,5])相当于1+2+3+4+5

参考链接:

http://www.runoob.com/python/python-func-filter.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值