亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

精通 Python map() 函数:语法、示例与最佳实践

精通 Python map() 函数:语法、示例与最佳实践

Python 内置 map() 对可迭代对象(列表、元组、集合、字符串、字典等)的每个元素应用函数,返回新的可迭代对象。它是 Python 函数式编程的基石。

学习内容

语法

map(function, iterable1, iterable2, ... iterableN)

参数

返回值

结果是 map 对象——惰性可迭代对象,按需产出转换后的项。转为列表、元组或集合以消费值。

map() 如何工作

简单示例:对列表每个数字求平方。

def square(n):
    return n * n

my_list = [2, 3, 4, 5, 6, 7, 8, 9]
updated = map(square, my_list)
print(list(updated))  # [4, 9, 16, 25, 36, 49, 64, 81]

map 对象是惰性的;转为列表强制求值。

配合内置函数使用 map()

可结合任何接受单参数的内置函数。例如四舍五入浮点数:

values = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907]
rounded_vals = map(round, values)
print(list(rounded_vals))  # [3, 4, 4, 6, 6, 8, 8, 10]

映射字符串

字符串可迭代,map() 可转换每个字符或单词。

def to_upper(s):
    return s.upper()

text = "welcome to guru99 tutorials!"
print("".join(map(to_upper, text)))  # WELCOME TO GURU99 TUTORIALS!

映射数字列表

def times_ten(n):
    return n * 10

nums = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(times_ten, nums)))  # [20, 30, 40, 50, 60, 70, 80, 90]

映射元组

def to_upper_str(s):
    return s.upper()

languages = ("php", "java", "python", "c++", "c")
print(list(map(to_upper_str, languages)))  # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

映射字典与集合

遍历字典时 map() 接收键;集合顺序任意。

def times_ten(n):
    return n * 10

sample_set = {2, 3, 4, 5, 6, 7, 8, 9}
print(sorted(map(times_ten, sample_set)))  # [20, 30, 40, 50, 60, 70, 80, 90]

使用 Lambda 函数

匿名函数让代码更简洁:

nums = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(lambda x: x * 10, nums)))  # [20, 30, 40, 50, 60, 70, 80, 90]

多迭代器

示例 1:两列表相加

def add(a, b):
    return a + b

list1 = [2, 3, 4, 5, 6, 7, 8, 9]
list2 = [4, 8, 12, 16, 20, 24, 28]
print(list(map(add, list1, list2)))  # [6, 11, 16, 21, 26, 31, 36]

示例 2:列表与元组元素拼接

def concat(a, b):
    return f"{a}_{b}"

letters = ['a', 'b', 'b', 'd', 'e']
brands = ('PHP', 'Java', 'Python', 'C++', 'C')
print(list(map(concat, letters, brands)))  # ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

核心要点

Python

  1. C++ 运算符重载实战指南:语法、方法、限制与代码示例
  2. C++ 函数详解:从声明到调用的实战指南
  3. Python Lambda匿名函数实战指南
  4. Python 生成器:高效迭代与进阶用例
  5. Python 闭包详解:嵌套函数如何捕获变量
  6. 精通 Python 装饰器:专家技巧增强函数
  7. Python print() 函数完全指南:基础用法、空行打印与自定义结束符
  8. Python strip() 方法完全指南:去除首尾空白与自定义字符实战
  9. Python str.count() 完全指南:统计字符与子串出现次数实战
  10. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  11. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  12. 精通 Python Lambda 函数:实用示例与最佳实践