Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Map 函数

✅ Python map():核心概念

map(function, iterable, …)

function 作用于 iterable 的每个元素,返回一个 惰性 map 对象(迭代器)。

✅ 1. 基本用法

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

✅ 2. 作用多个序列

map() 会并行取多个序列的对应元素:

a = [1, 2, 3]
b = [10, 20, 30]

result = map(lambda x, y: x + y, a, b)
print(list(result))  # [11, 22, 33]

✅ 3. map + 内置函数

转换类型

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

去掉字符串两边空格

items = [' a ', ' b ', ' c ']
print(list(map(str.strip, items)))  # ['a', 'b', 'c']

✅ 4. map + 自定义函数

def square(n):
    return n * n

result = map(square, range(5))
print(list(result))  # [0, 1, 4, 9, 16]

✅ 5. map 是惰性的

不会立即执行,直到你消费它:

m = map(int, ['1', '2', '3'])
print(next(m))  # 1
print(next(m))  # 2

✅ 6. map 与列表推导式对比

map:适合函数式、批量调用函数

列表推导:更可读,可写逻辑

等价示例:

list(map(lambda x: x * 2, arr))
[x * 2 for x in arr]

复杂逻辑 -> list comprehension 更直观。

批量转换 -> map 更简洁。

✅ 7. map + 多参数函数

def combine(a, b, c):
    return f"{a}-{b}-{c}"

result = map(combine, [1,2], ['A','B'], ['x','y'])
print(list(result))
# ['1-A-x', '2-B-y']

✅ 8. map + dict 处理

key 转换

d = {"a": 1, "b": 2}
keys_upper = dict(map(lambda kv: (kv[0].upper(), kv[1]), d.items()))
print(keys_upper)  # {'A': 1, 'B': 2}

✅ 9. map + 数据清洗(最常见)

去空格 -> 大写 -> 过滤空字符串

items = [" a ", "B  ", " ", "c"]

clean = list(map(lambda x: x.strip().upper(), items))
print(clean)  # ['A', 'B', '', 'C']

✅ 10. map 实战:股票数据处理

stocks = [
    {"code": "600001", "price": "10.23"},
    {"code": "600002", "price": "12.50"},
]

processed = list(map(lambda s: {**s, "price": float(s["price"])}, stocks))
print(processed)

🎯 总结:map() 的使用场景

场景 是否适用
批量调用某个函数 ✅ map 很适合
并行处理多个列表 ✅ map 非常适合
复杂逻辑 ❌ 用列表推导式更好
惰性处理大数据 ✅ map 很强
数据清洗 pipeline ✅ map 常用