暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【跟我学】神奇的map函数

云南高校数据化运营管理工程中心 2018-06-08
277

神奇的map函数

作者:水...琥珀

编辑:Aomi


一、引言

二、函数介绍

三、代码展示

四、思考


一、引言


Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读。在之前的文章中讲述了匿名函数lambda,可以说是懒人神器。今天再来一个省事神奇,map函数。

map我们首先想到什么?

按照单词的字面意思,我们会想到地图,也许还会想到它另一个意思:映射。对,就是高中数学的映射呀。


二、函数介绍


map (function, sequence)

map()函数接收两个参数,一个是函数,一个是序列,序列可以是list ,tuple,string。map 函数会对序列中的每个元素调用 function 函数,结果为元素调用function函数的返回值。

代码展示1

# -*- coding: utf-8 -*- 

def IfEven(x):  #此函数判读是否是偶数
    if x%2 == 0:
        return True
    else:
        return False
mylist = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
resultOne = map(IfEven,mylist) 

# 3.x 版本返回的是对象 map object

print(resultOne)              

#<map object at 0x000001B95C3AFAC8>
print(list(resultOne))        

# 3.x 版本须做类型转换

#[True, False, False, True, False, False, True, False, False, True, False]

通过代码块1这个例子我们已经认识了map函数。

代码展示2

mylist =[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

resultTwo= map(lambda x:x%2,mylist)

print(list(resultTwo))   

#[0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1]

map函数深度说明:

map (function, sequence)

3.x 版本返回的是一个map object (迭代器) (后续的函数filter也是返回object),要加上list()等类型转换;而之前 2.x 版本的返回值类型和参数sequence的类型相同。


三、思考


Lambda速成函数 和map 返回的结果形式,你有没有想到Python 列表解析呢?

欢迎热爱数据挖掘的你加入我们的编辑团队,有兴趣后台私聊小编哦,坐等调戏~~~

长按识别二维码关注我们



文章转载自云南高校数据化运营管理工程中心,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论