python 内置函数--map
首先,我们先看一下map函数的介绍:
显而易见,map函数
返回值:一个map object(map 对象,是一个可迭代对象)
参数:
- func(一个函数)
- iterables(一个或多个可迭代对象)
下面我们具体深入了解:
# 定义一个 +1 的简单函数
def add_one(x):
return x + 1
# 只传入一个可迭代对象进入map函数
a = map(add_one, ls)
b = map(add_one, tp)
c = map(add_one, dict1.values())
# 打印结果
print(a, b, c)
print(type(a), type(b), type(c))
print(tuple(a), list(b), list(c))
结果如下:
打印结果印证了返回值的类型为一个map对象,属于map类
它的逻辑为:将可迭代对象传入函数中,并进行迭代,生成一个map对象
我们可以将map对象转化为其它可迭代对象,例如结果中的元组和列表。
当然,也可以遍历:
for i in a:
print(i)
深入了解map
当传入多个可迭代对象进入同一函数,结果如何?
# python中最常见的三种可迭代对象
ls = [1, 2, 3, 4, 5]
tp = (1, 2, 3, 4, 5)
dict1 = {"n": 1, "m": 2}
def my_sum(x, y, z):
return x + y + z
# 需要特别注意字典的传入规范
e = map(my_sum, ls, tp, dict1.values())
print(list(e))
结果如下:
分析知道:
当有多个可迭代对象传入时,它会将每个可迭代对象的对应元素传入函数,生成一个map对象的子元素并保存,当其中一个可迭代对象的元素传完后,停止迭代,此时,生成了完整的map对象。(可以理解为木桶原理)
map使用实例:
实例1.一行输入多个数
# 常见map使用实例
# 一行输入多个数
ls0 = [0] * 5
ls1 = [0] * 5
for i in range(3):
ls0[i], ls1[i] = map(int, input().split())
print(ls0, ls1)
实例2. 把 list 所有数字转为字符串
r = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(str, r )))
#输出结果
['1', '2', '3', '4', '5', '6', '7', '8', '9']
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)