• Python进阶之map() 函数


    一、前言

    如果你正在学习编程,那么掌握 Python中的map函数是你升级的机会。

    在我们继续之前,你需要了解什么是函数和可迭代对象:

    函数是执行特定任务的代码。例如:len(), print(), str()

    可迭代对象是包含一个或多个项的对象。例如:列表字典元组

    Python中的map函数是一个允许你使用另一个函数转换整个可迭代对象的函数。这里的关键概念是转换,它可以包括但不限于:

    1. 将字符串转换为数字

    2. 四舍五入数字

    3. 获取每个可迭代项的长度

    读者可能会提出问题:“为什么不能用 for 循环来做上面的事情?”

    答案是:可以使用for循环。但是使用Python中的map函数可以节省内存(这意味着你的代码运行得更快),并且需要更少的代码。

    二、从for循环开始

    假设我们有一个数字组成的字符串列表,我们需要将字符串列表转换为整数:

    我们可以使用for循环来解决问题:

    list_of_strings = ["5","6","7","8","9", "10"]
    result = []
    for i in range(len(list_of_strings)):
        list_of_strings[i]=int(list_of_strings[i])
        result.append(list_of_strings[i])
    print(result,type(result[0]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    [5, 6, 7, 8, 9, 10] <class 'int'>
    
    • 1

    我们回想一下for循环背后发生了什么?

    我们的计算机需要遍历每个项目(“5”、“6”、“7” 、“8”、“9”、“10”),然后转换项目,讲元素转换为整数类型,然后将该项目存储在新列表中。

    虽然使用 for 循环来转换列表是有效的,但它不是最佳的。

    三、使用map函数

    result_1 = map(int,list_of_strings)
    
    • 1

    需要注意的是,我们此刻生成的是一个迭代器:

    print(result_1)
    
    • 1
    <map object at 0x00000233AAFE5E80>
    
    • 1

    此时我们只需要把它转换为列表即可实现:

    print(list(result_1))
    
    • 1
    [5, 6, 7, 8, 9, 10]
    
    • 1

    我们在这里所做的只是创建一个变量来存储我们想要转换为数字的字符串列表:

    result = map(int,list_of_strings)
    
    • 1

    让我们从里到外分解上面的代码。map函数的语法如下:

    map(insert function here, insert iterable here)
    
    • 1

    参数解释为:

    1. function – 函数

    2. iterable – 一个或多个序列

    四、map函数背后发生了什么

    map函数不是遍历字符串列表的每个项目,而是将整个字符串列表转换为数字列表。你节省了内存,并且代码运行得更快。

    如果要转换项目,使用map函数比for循环更好!

    最后,map函数比for循环更优雅,将帮助你更快地编译代码。

  • 相关阅读:
    通过 Traefik Hub 暴露家里的网络服务
    Day 281/300 微信小程序 监听接口返回的数据后 动态赋值并展示
    【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(下)
    独立站如何做好社媒营销
    win10超好看的鼠标主题,你也来试试吧
    在Ascend上,单卡精度可以很好,但多卡精度很差
    mysql查询时间相关方法
    【机器学习13】生成对抗网络
    阿里云服务器公网带宽如何修改?
    最新下载:Paragon NTFS for Mac 15【软件附加安装教程】
  • 原文地址:https://blog.csdn.net/wzk4869/article/details/126744833