当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python map()用法及代码示例


在本教程中,我们将借助示例了解 Python map() 函数。

map() 函数将给定函数应用于可迭代对象(列表、元组等)的每个项目并返回一个迭代器。

示例

numbers = [2, 4, 6, 8, 10]

# returns square of a number
def square(number):
  return number * number

# apply square() function to each item of the numbers list
squared_numbers_iterator = map(square, numbers)

# converting to list
squared_numbers = list(squared_numbers_iterator)
print(squared_numbers)

# Output: [4, 16, 36, 64, 100]

map() 语法

它的语法是:

map(function, iterable, ...)

map()参数

map() 函数有两个参数:

  • function- 对可迭代对象的每个元素执行某些操作的函数
  • iterable- 一个可迭代的,列表,元组, 等等

您可以将多个iterable 传递给map() 函数。

返回:

map() 函数返回Map类的对象。返回的值可以传递给函数,如

  • list() - 转换为列表
  • set() - 转换为集合,依此类推。

示例 1:map() 的工作

def calculateSquare(n):
    return n*n


numbers = (1, 2, 3, 4)
result = map(calculateSquare, numbers)
print(result)

# converting map object to set
numbersSquare = set(result)
print(numbersSquare)

输出

<map object at 0x7f722da129e8>
{16, 1, 4, 9}

在上面的例子中,元组的每一项都是平方的。

由于 map() 需要传入一个函数,因此在处理 map() 函数时通常会使用 lambda 函数。

lambda 函数是一个没有名称的短函数。访问此页面以了解有关 Python lambda Function 的更多信息。

示例 2:如何在 map() 中使用 lambda 函数?

numbers = (1, 2, 3, 4)
result = map(lambda x: x*x, numbers)
print(result)

# converting map object to set
numbersSquare = set(result)
print(numbersSquare)

输出

<map 0x7fafc21ccb00>
{16, 1, 4, 9}

此示例和示例 1 的函数没有区别。

示例 3:使用 Lambda 将多个迭代器传递给 map()

在此示例中,添加了两个列表的对应项。

num1 = [4, 5, 6]
num2 = [5, 6, 7]

result = map(lambda n1, n2: n1+n2, num1, num2)
print(list(result))

输出

[9, 11, 13]

相关用法


注:本文由纯净天空筛选整理自 Python map()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。