map函数是用于函数式编程的Python内置函数中最简单的一个。map()将指定的函数应用于可迭代的每个元素:
names = ['Fred', 'Wilma', 'Barney']
map(len, names) #在Python3.xis中映射一个类;它的实例是可迭代的 # Out: <map object at 0x00000198B32E2CF8>
map该future_builtins模块包含与Python 3兼容的模块:
from future_builtins import map # 包含一个Python3.xcompatible map() map(len, names) # 见下文 # Out: <itertools.imap instance at 0x3eb0a20>
另外,在Python 2中,可以使用imapfromitertools来生成一个生成器
map(len, names) # map()返回一个列表 # 出:[4、5、6] from itertools import imap imap(len, names) # itertools.imap()返回一个生成器 # Out: <itertools.imap at 0x405ea20>
可以将结果显式转换为,list以消除Python 2和3之间的差异:
list(map(len, names)) # 出:[4、5、6]
map()可以用等效的列表理解或生成器表达式代替:
[len(item) for item in names] # 等效于Python2.xmap() # 出:[4、5、6] (len(item) for item in names) # 等效于Python3.xmap() # Out: <generator object <genexpr> at 0x00000195888D5FC0>