python2,3 map使用对比,以及python3 filter,reduce

前言:在学习感知机,遇到了python2写的map代码,而本人用的是python3,运行不了,于是发现两个版本中的map存在着差别。顺利也学习了reduce,filter的相关知识,记录一下

map: 函数需要输入一个参数

功能:把列表里的每一个数都分别独立的用函数做处理

python2中返回的是列表

python2返回的是"map"类型,可以用for遍历,也可以用list转换为列表

python3例:

def square(x):
    return x**2
y = map(square, [1,2,3,4,5])
print (type(y))
print (list(y))

结果:

<class 'map'>
[1, 4, 9, 16, 25]

reduce:函数需要输入两个参数

功能:把列表中的相邻两个数送入到的函数处理后把结果放到列表的第一位继续重复这样的操作直至结束

例:

from functools import reduce

def square(x,y):
    return x*y

y = reduce(square, [1,2,3,4,5])
print (y)

结果:

120

filter:函数需要输入一个参数

功能:把列表中不满足函数条件的给滤除

例:

def square(x):
    return x%4 == 0

y = filter(square, [1,2,3,4,5])
print (type(y))
y = [i for i in y]#这里不能使用list转换
print (y)

结果:

<class 'filter'>
[4]





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值