神奇的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 列表解析呢?
欢迎热爱数据挖掘的你加入我们的编辑团队,有兴趣后台私聊小编哦,坐等调戏~~~
长按识别二维码关注我们









