开放的编程资料库

当前位置:我爱分享网 > Python教程 > 正文

Python的map函数

Python地图教程介绍了Python内置的map函数。

Pythonmap()函数

Pythonmap内置函数将给定函数应用于可迭代对象的每个项目并返回一个迭代器对象。

map(function, iterable, ...)

map函数可以传递多个可迭代对象。函数必须采用与可迭代对象一样多的参数。

Python地图示例

以下示例在整数列表上使用Pythonmap

#!/usr/bin/python

def square(x):

    return x * x

nums = [1, 2, 3, 4, 5]

nums_squared = map(square, nums)

for num in nums_squared:

    print(num)

我们定义一个整数列表,并使用map对列表的每个元素应用square函数。

def square(x):

    return x * x

square函数对其参数求平方。

nums = [1, 2, 3, 4, 5]

我们定义了一个整数列表。

nums_squared = map(square, nums)

map函数对nums列表的每个元素应用square函数。

for num in nums_squared:

    print(num)

我们遍历返回的可迭代对象并打印元素。

$ ./python_map.py
1
4
9
16
25

Python映射等价物

以下示例显示了一个自定义等效于Python3map函数。

#!/usr/bin/python

def square(x):

    return x * x

def mymap(func, iterable):

    for i in iterable:
        yield func(i)

nums = [1, 2, 3, 4, 5]

nums_squared = mymap(square, nums)

for num in nums_squared:

    print(num)

mymap与Python3map做同样的事情。

使用lambda的Python映射

下一个示例使用lambda运算符在map中创建一个匿名函数。

#!/usr/bin/python

nums = [1, 2, 3, 4, 5]

nums_squared = map(lambda x: x*x, nums)

for num in nums_squared:
    print(num)

代码示例使用map和使用lambda创建的匿名函数对列表的元素进行平方。

具有多个可迭代对象的Python映射

我们之前提到过,我们可以将多个iterables传递给map

#!/usr/bin/python

def multiply(x, y):

    return x * y

nums1 = [1, 2, 3, 4, 5]
nums2 = [6, 7, 8, 9, 10]

mult = map(multiply, nums1, nums2)

for num in mult:
    print(num)

在代码示例中有两个包含整数的迭代器。来自两个可迭代对象的值相乘。

def multiply(x, y):

    return x * y

该函数必须采用两个参数,因为有两个可迭代对象传递给map

$ ./python_map_iterables.py
6
14
24
36
50

Python映射多个函数

在下一个示例中,我们将展示如何在Pythonmap中使用多个函数。

#!/usr/bin/python

def add(x):
    return x + x

def square(x):
    return x * x

nums = [1, 2, 3, 4, 5]

for i in nums:

    vals = list(map(lambda x: x(i), (add, square)))

    print(vals)

在示例中,我们对整数值列表应用了addsquare函数。

for i in nums:

    vals = list(map(lambda x: x(i), (add, square)))

    print(vals)

我们遍历for循环中的元素。在每个循环中,我们创建一个包含两个值的列表,这些值是通过对值应用addsquare函数计算得出的。

$ ./python_map_multiple_funcs.py
[2, 1]
[4, 4]
[6, 9]
[8, 16]
[10, 25]

第一个值由加法形成,第二个值由乘法形成。

Python列表理解

Pythonmap的功能也可以通过Pythonlistcomprehensions实现。

#!/usr/bin/python

def square(x):

    return x * x

nums = [1, 2, 3, 4, 5]

nums_squared = [square(num) for num in nums]

for num in nums_squared:

    print(num)

该示例使用Pythonlist理解从整数列表创建平方值列表。

在本教程中,我们使用了Pythonmap函数。

列出所有Python教程。

未经允许不得转载:我爱分享网 » Python的map函数

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏