python3 与Python2中map()函数的使用异同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 与Python2中map()函数的使用异同相关的知识,希望对你有一定的参考价值。

参考技术A python2的map(function, list)函数直接返回一个list

此时返回的是迭代器,需要加一个list作用于map

int型数据是不能被用于迭代的,所以map的list入参的元素不能是整数,即

故list中的元素类型可以是str,list等

python中filter,reduce,map的用法

filter的用法:

操作表list内嵌函数
‘filter‘ 需要一个函数与一个list
它用这个函数来决定哪个项应该被放入过滤结果队列中
遍历list中的每一个值,输入到这个函数中
如果这个函数返回True, 那么值就放到过滤结果队列中去
如果这个函数返回 False,那么这个值就会被跳过

def pick_num(x):

if x%3==0:

  return x

r=[2,4,6,8,10]

result=list(filter(pick_num,r))

 

 

reduce用法:

操作表list内嵌函数
‘reduce‘ 需要一个函数与一个list作为参数
它把该list最终压缩成一个值
函数必须有两个参数作为输入,返回一个值作为输出
‘reduce’ 首先对这个list的头两个元素应用这个函数
然后是对返回值以及list的下一个元素继续应用该函数
以此类推,直到整个list中的值都被遍历到

from functools import reduce

def sum(x, y): return x+y

r=list(range(10))

result=reduce(sum,r)

print result

 

map用法:

操作表list的内嵌函数
‘map‘需要一个函数与一个list作为参数
这个函数限定为只有一个参数输入一个返回输出
这个函数要依次作用到这个list上的每一个元素
结果作为一个表list返回

 

def AddSelf(x):return x+1

r=list(range(10))

result=map(AddSelf,r)

print result
















以上是关于python3 与Python2中map()函数的使用异同的主要内容,如果未能解决你的问题,请参考以下文章

python2与python3

Python3下map函数的问题

python3.x中lambda表达式的处理与python2不一样

Python2 与 Python3 区别

Python2.x与Python3.x的主要区别(转)

高阶函数