网易首页 > 网易号 > 正文 申请入驻

Python 内置函数:map()

0
分享至

map() 是 Python 的一个常用函数式编程工具,用于将某个函数应用到一个或多个可迭代对象(如列表、元组、字符串等)的每个元素上,生成新的迭代结果。相比显式循环,map() 写法更简洁优雅,常用于数据处理、转换和清洗。

一、函数语法

map(function, iterable, *iterables)

参数:

function :要应用到每个元素的函数,可以是内置函数、自定义函数或 lambda 匿名函数。

在 Python 3 中必须传入函数,Python 2 中允许传 None,但现在已不支持。

iterable, *iterables:一个或多个可迭代对象,如列表、元组、字符串等。

当提供多个可迭代对象时,function 的参数个数必须与之对应。

多个可迭代对象时,会按最短长度截断。

返回值:

返回一个惰性迭代器对象(map 对象)。结果不会立即计算,需要显式触发迭代(如 list()、tuple()、for 循环)。

二、基本示例

1、使用内置函数进行类型转换

nums = ['1', '2', '3']
ints = list(map(int, nums))
print(ints)  # 输出:[1, 2, 3]

2、使用自定义函数对序列进行处理

def square(x):
    return x * x

data = [1, 2, 3, 4]
result = list(map(square, data))
print(result)  # 输出:[1, 4, 9, 16]

3、使用 lambda 表达式(匿名函数)

data = [1, 2, 3, 4]
result = list(map(lambda x: x + 10, data))
print(result)  # 输出:[11, 12, 13, 14]

4、同时作用于多个可迭代对象

a = [1, 2, 3]
b = [4, 5, 6]

result = list(map(lambda x, y: x + y, a, b))
print(result)  # 输出:[5, 7, 9]

当使用多个可迭代对象时,它们的长度将按最短的那个为准:

list(map(lambda x, y: x + y, [1, 2], [10, 20, 30]))  # 输出:[11, 22]

三、进阶技巧

1、搭配 str.strip()、str.upper() 等方法处理字符串

lines = ['  apple  ', 'banana ', '  cherry']
cleaned = list(map(str.strip, lines))
print(cleaned)  # 输出:['apple', 'banana', 'cherry']

2、替代复杂循环,提高可读性

传统写法:

result = []
for x in [1, 2, 3]:
    result.append(x * 2)
print(result)    # 输出: [2, 4, 6]

使用 map():

result = list(map(lambda x: x * 2, [1, 2, 3]))

提示:

虽然 map() 更简洁,但在处理逻辑较复杂或涉及副作用的情况下,循环可能更直观。

3、与列表推导式的对比

在 Python 中,map() 的功能通常可以用替代:

示例:使用 map

squares = list(map(lambda x: x**2, range(5)))

示例: 使用列表推导式(更直观)

squares = [x**2 for x in range(5)]

两者的选择依据通常是可读性和风格偏好。对于简单的函数应用,列表推导式更直观;而在需要复用已有函数,或多个可迭代对象同时处理时,map() 更灵活。

四、map 对象的特性

1、惰性计算

map() 返回的是一个惰性迭代器,不会立即生成结果。

result = map(int, ['1', '2', '3'])
print(result)        #
print(list(result))  # [1, 2, 3]

2、只能迭代一次

迭代完成后,结果就会“耗尽”:

result = map(int, ['1', '2', '3'])
print(list(result))  # [1, 2, 3]
print(list(result))  # []  (已空)

3、内存友好

由于是惰性迭代器,map() 在处理大数据集时比一次性生成完整列表更节省内存

五、补充说明

1、map() 是内置函数,无需导入,运行效率较高。

2、map() 是函数式编程的代表之一,搭配 、 等使用更具表现力。

3、map() 是 Python 中处理数据转换的高效工具,具有以下优点:

(1)避免显式循环,代码更简洁。

(2)与函数(尤其是 lambda)结合,便于快速定义转换逻辑。

(3)支持多个可迭代对象,扩展性强。

(4)返回迭代器,内存开销低。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
HBO的史诗级美剧,终于上线了

HBO的史诗级美剧,终于上线了

来看美剧
2026-01-21 18:59:51
中国向全世界披露:美国4400颗卫星,包围中国空间站,这是要做啥

中国向全世界披露:美国4400颗卫星,包围中国空间站,这是要做啥

素衣读史
2026-01-17 18:35:57
特朗普:不去G7峰会 因为马克龙干不长了

特朗普:不去G7峰会 因为马克龙干不长了

财联社
2026-01-21 11:40:17
可控核聚变,有明确订单的5家公司!

可控核聚变,有明确订单的5家公司!

Thurman在昆明
2026-01-21 10:36:35
性生活后的“黄金十分钟”,坚持做对这件事,胜过世间万千补药

性生活后的“黄金十分钟”,坚持做对这件事,胜过世间万千补药

精彩分享快乐
2026-01-22 06:00:07
截胡!阿森纳必须赢下 8700 万巨星争夺战,奥恩斯坦实锤有戏!

截胡!阿森纳必须赢下 8700 万巨星争夺战,奥恩斯坦实锤有戏!

澜归序
2026-01-22 05:22:36
陈夏广出任中山市副市长

陈夏广出任中山市副市长

南方都市报
2026-01-21 18:30:09
她赴英留学,却与上千外国男子有染并拍成视频,父母与她断绝关系

她赴英留学,却与上千外国男子有染并拍成视频,父母与她断绝关系

阿胡
2026-01-21 17:34:15
招行、浦发成功将卫星送上太空!通过遥感技术,银行可远程实现对楼盘贷后风险的实时监测

招行、浦发成功将卫星送上太空!通过遥感技术,银行可远程实现对楼盘贷后风险的实时监测

每日经济新闻
2026-01-21 00:23:14
又菜又爱玩?媒体人痛批广东队:打弱队还行,遇强队必崩

又菜又爱玩?媒体人痛批广东队:打弱队还行,遇强队必崩

体育见习官
2026-01-22 07:35:07
中东变天了!10万大军杀过来了,美军拔腿就跑,丢了好几个基地

中东变天了!10万大军杀过来了,美军拔腿就跑,丢了好几个基地

悦心知足
2026-01-21 18:18:33
加拿大低税进口4.9万辆中国新能源车,配额最多的居然不是比亚迪

加拿大低税进口4.9万辆中国新能源车,配额最多的居然不是比亚迪

蓝色海边
2026-01-21 03:17:15
张碧晨成都演出裤腰滑落,观众拍图上热搜,她改穿连体衣没说话

张碧晨成都演出裤腰滑落,观众拍图上热搜,她改穿连体衣没说话

阿废冷眼观察所
2026-01-21 13:20:58
山东省纪委监委网站通报:2人被查,1人系主动投案

山东省纪委监委网站通报:2人被查,1人系主动投案

齐鲁壹点
2026-01-21 17:13:13
有人问及如何评价周总理,黄永胜回忆:外交上是一把好手,搞内政堪称八级泥瓦

有人问及如何评价周总理,黄永胜回忆:外交上是一把好手,搞内政堪称八级泥瓦

源溯历史
2025-12-22 12:14:13
Baxter:在湖人兜底选中布朗尼这件事上,珍妮认为詹姆斯不够感激

Baxter:在湖人兜底选中布朗尼这件事上,珍妮认为詹姆斯不够感激

移动挡拆
2026-01-22 01:46:30
量子计算机很可能永远不会成功

量子计算机很可能永远不会成功

观察者网
2026-01-21 08:38:06
老蒋曾说:亡于日本为亡国奴,亡于共产党,则为奴亦不可得

老蒋曾说:亡于日本为亡国奴,亡于共产党,则为奴亦不可得

老范谈史
2026-01-05 21:19:06
1.22股市早8点丨风险不得不降低·牛市不得不继续

1.22股市早8点丨风险不得不降低·牛市不得不继续

沙黾农
2026-01-22 06:20:53
王励勤出手了!国乒大洗牌重点培养5位选手 孙颖莎王楚钦陷入两难

王励勤出手了!国乒大洗牌重点培养5位选手 孙颖莎王楚钦陷入两难

做一个合格的吃瓜群众
2026-01-17 16:38:59
2026-01-22 08:27:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1720文章数 72关注度
往期回顾 全部

科技要闻

日系彩电时代“彻底落幕”

头条要闻

新房灌装燃气次日爆炸:夫妻重度烧伤 房子被毁成危房

头条要闻

新房灌装燃气次日爆炸:夫妻重度烧伤 房子被毁成危房

体育要闻

只会防守反击?不好意思,我们要踢决赛了

娱乐要闻

首位捐款的明星 苗圃现身嫣然医院捐款

财经要闻

丹麦打响第一枪 欧洲用资本保卫格陵兰岛

汽车要闻

2026款上汽大众朗逸正式上市 售价12.09万起

态度原创

亲子
家居
游戏
教育
公开课

亲子要闻

没想到小伙子也能用英语跟我对话了。他的发音比我标准,最后还知道来一句“Good job” 杨雪呀

家居要闻

褪去浮华 触达松弛与欣喜

《灾厄之石》Steam抢先体验版发布 优惠价46元

教育要闻

450分也能上公办!广东3所稳进优质校必看

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版