全国咨询/投诉热线:400-618-9090

首页技术文章正文

python中map函数的用法[python学习]

更新时间:2019-10-31 来源:黑马程序员 浏览量:

Python提供了很多能实现各种功能的内置函数。内置函数,就是在python中被自动加载的函数,任何时候都可以使用。下面我们介绍map函数的用法和作用。

map函数会根据提供的函数对指定的序列做映射。map函数的定义如下:


map(function, iterable, …)


在上述定义中,第一个参数function表示的是一个函数名,第二个参数iterable可以是序列、支持选代的容器或选代器。当调用map函数时,iterable中的每个元素都会调用function函数,所有元素调用function函数返回的结果会保存到一个迭代器对象中。

 

这里说明一下,在Python2中,map函数的返回值是列表list类型如果希望将选代器对象转为列表,则可以通过list函数进行转换。此外,还可以使用for循环直接遍历迭代器对象,从而取出其内部的每个元素。示例代码如下:【推荐了解:python+人工智能课程

 

func = lambda  x:x+2

result = map(func, [1, 2, 3, 4, 5]

print(list(ruslt))

 

上述示例中,定义了一个匿名函数func,返回某个数加2以后的结果,接着调用map函数将

[1,2,3,4,5]中的每个元素取出来,作为func的参数调用func函数,之后将结果转换为列表的形式显示。

程序输出的结果为:

[3, 4, 5, 6, 7]

1572506259042_map-函数.jpg



如果map函数中传入的 unction函数带有两个参数,那么map函数需要传递两个序列例代码如下。

Result  =  map (lambda  x, y: x+y, [1, 2, 3], [4,5,6])

print (list (result))

# 结果为

[5, 7, 9]

 

在 Python3以前,如果调用map函数时传入的 function参数为None,则相当于将序列中

对应位置的元素合并成为元组。示例(Phon2.7)代码如下:


Result = map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

print result

# 输出结果

[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]


如果两个序列的元素个数不一致,那么元素少的序列会以None补齐。示例(Python 2.7)代码如下:

result = map(None, [1, 3, 5, 7, 9], [2, 4, 6])

print result

#结果为

[(1, 2), (3, 4), (5, 6), (7, None), (9, None)]


在 Python3以后,当map传入的函数为None时,就等同于zip函数(用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表)的功能,并且已经zip函数取代了。另外,map函数无法处理两个序列长度不一致、对应位置操作类型不一致,它们都会报错类型错误。【小福利:python入门教程下载


本文来自:黑马程序员 www.itheima.com

 

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名