Pythonmap,itertools.imap和future_builtins.map的基本用法

示例

map函数是用于函数式编程的Python内置函数中最简单的一个。map()将指定的函数应用于可迭代的每个元素:

names = ['Fred', 'Wilma', 'Barney']

Python 3.x 3.0
map(len, names)  #在Python3.xis中映射一个类;它的实例是可迭代的
# Out: <map object at 0x00000198B32E2CF8>

map该future_builtins模块包含与Python 3兼容的模块:

Python 2.x 2.6
from future_builtins import map  # 包含一个Python3.xcompatible map()
map(len, names)                  # 见下文
# Out: <itertools.imap instance at 0x3eb0a20>

另外,在Python 2中,可以使用imapfromitertools来生成一个生成器

Python 2.x 2.3
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>