map()是python内置高阶函数,将函数逐个应用到可迭代对象各元素并返回惰性迭代器;支持单/多参数、lambda或自定义函数,常需转为list等类型查看结果。

map() 是 Python 内置的高阶函数,用于将一个函数**逐个应用到可迭代对象(如列表、元组、字符串等)的每个元素上**,并返回一个 map 对象(迭代器),通常需转为列表或其他容器才能直观查看结果。
基本用法:传入函数和可迭代对象
语法:map(function, iterable)
其中 function 可以是内置函数、自定义函数或 lambda 表达式;iterable 是任意支持迭代的对象。
- 如果函数接受多个参数,可传入多个可迭代对象,map 会按位置配对取值(类似 zip)
- 返回的是惰性求值的迭代器,多次遍历会耗尽,需用
list()、tuple()等显式转换 - 当某个可迭代对象先结束时,map 自动停止(短路行为)
用 lambda 快速实现简单变换
适合一行逻辑,比如字符串转大写、数字平方、提取属性等:
示例:将数字列表全部平方
nums = [1, 2, 3, 4] squared = list(map(lambda x: x ** 2, nums)) # 结果:[1, 4, 9, 16]
示例:将字符串列表统一转为小写并去除空格
words = [' Hello ', 'WORLD', ' Py '] cleaned = list(map(lambda s: s.strip().lower(), words)) # 结果:['hello', 'world', 'py']
用自定义函数处理复杂逻辑
当处理逻辑涉及多步判断、异常处理或调用外部资源时,推荐封装为普通函数:
示例:安全地将字符串转为整数,失败则返回 None
def safe_int(s):
try:
return int(s)
except (ValueError, TypeError):
return None
<p>data = ['123', 'abc', '456', None, '789']
result = list(map(safe_int, data))</p><h1>结果:[123, None, 456, None, 789]</h1>
多序列并行映射(多参数函数)
map 支持同时遍历多个可迭代对象,适用于需要对齐操作的场景:
示例:计算两组数字对应位置的和
a = [1, 2, 3] b = [10, 20, 30] sums = list(map(lambda x, y: x + y, a, b)) # 结果:[11, 22, 33]
示例:拼接姓名与年龄字符串
names = ['Alice', 'Bob']
ages = [25, 30]
info = list(map(lambda name, age: f'{name} ({age})', names, ages))
# 结果:['Alice (25)', 'Bob (30)']Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











