【问题标题】:What’s the function of map()?map() 的作用是什么?
【发布时间】:2019-05-28 15:21:29
【问题描述】:

我的代码中map()的作用是什么?

squares = list(map(lambda x: x**2, range(10)))

【问题讨论】:

标签: python python-3.x


【解决方案1】:

该代码 (squares = list(map(lambda x: x**2, range(10)))) 与:

f = lambda x: x**2
squares = []
for x in range(10):
    squares.append(f(x))

【讨论】:

    【解决方案2】:

    简单来说,

    map 为给定的可迭代对象执行函数

    定义:

    map() 函数用于将函数应用于所有元素 指定可迭代并返回映射对象。 Python 地图对象是一个 迭代器,所以我们可以迭代它的元素

    在您的代码中,

    squares = list(map(lambda x: x**2, range(10)))
    

    功能lambda x: x**2

    例如:

    f = lambda x: x**2
    

    f(2) 给出 4 作为输出

    可迭代对象range(10)

    例如: 它创建一个范围为 0 到 9 的可迭代对象

    0,1,2,3,4,5,6,7,8,9
    

    map的作用是,为范围内的所有元素调用函数,

    点赞f(0), f(1), ... , f(9)

    然后您已经创建了带有输出元素的列表。

    【讨论】:

      【解决方案3】:

      map 函数是用于应用于迭代中指定的元素的函数。在您的示例中,迭代是 range(10)(0 到 9)并应用从 0 到 9 的每个数字的函数 square。Map 返回从 0 到 81 的平方数字列表。

      【讨论】:

        【解决方案4】:

        这是一个map-function

        在许多编程语言中,map 是高阶函数的名称,它将给定函数应用于函子的每个元素,例如一个列表,以相同的顺序返回结果列表。当以函数形式考虑时,它通常被称为 apply-to-all。

        来自Python docs

        返回一个迭代器,它将函数应用于可迭代的每个项目,并产生结果。如果传递了额外的可迭代参数,函数必须接受那么多参数并并行应用于所有可迭代的项目。对于多个可迭代对象,迭代器会在最短的可迭代对象耗尽时停止。对于函数输入已经排列成参数元组的情况,请参见 itertools.starmap()。

        简单来说,就是将给定函数应用于给定容器的每个元素的函数:

        a = [1,2,3,4,5]
        l = lambda x: x + 10
        list(map(l, a))
        

        将返回:

        [11, 12, 13, 14, 15]

        【讨论】:

          猜你喜欢
          • 2017-06-27
          • 1970-01-01
          • 2010-09-28
          • 2013-12-20
          • 2017-07-09
          • 2019-11-30
          • 2018-04-28
          • 1970-01-01
          • 2019-02-04
          相关资源
          最近更新 更多