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)
在示例中,我们对整数值列表应用了add
和square
函数。
for i in nums: vals = list(map(lambda x: x(i), (add, square))) print(vals)
我们遍历for循环中的元素。在每个循环中,我们创建一个包含两个值的列表,这些值是通过对值应用add
和square
函数计算得出的。
$ ./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教程。