Python 的 map() 函数

函数的基本语法:

1
map(function, iterable, ...)

前面是一个函数,后面的是一个或者多个的可迭代序列,至于可迭代的对象就很多了。 list、tuple、dict、set、str 都是可迭代对象,判断一个对象是不是可迭代【 Iterable 】可以使用 isinstance() 函数。

对 map() 的返回值而言,它的返回值是一个 list,这个在 python 2 和 python 3 中是有区别的,

  • Python 2.x 返回列表。
  • Python 3.x 返回迭代器。
1
2
3
4
5
6
7
8
9
10
11
def square(x) :                # 计算平方数
...     return x ** 2
...
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

Leave a Reply