map itertools.imap 和 future builtins.map 的基本用法
map 函数是用于函数式编程的 Python 内置函数中最简单的函数。 map()
将指定的函数应用于 iterable 中的每个元素:
names = ['Fred', 'Wilma', 'Barney']
Python 3.x >= 3.0
map(len, names) # map in Python 3.x is a class; its instances are iterable
# Out: <map object at 0x00000198B32E2CF8>
future_builtins
模块中包含一个兼容 Python 3 的 map
:
Python 2.x >= 2.6
from future_builtins import map # contains a Python 3.x compatible map()
map(len, names) # see below
# Out: <itertools.imap instance at 0x3eb0a20>
或者,在 Python 2 中,可以使用 itertools
中的 imap
来获取生成器
Python 2.x >= 2.3
map(len, names) # map() returns a list
# Out: [4, 5, 6]
from itertools import imap
imap(len, names) # itertools.imap() returns a generator
# Out: <itertools.imap at 0x405ea20>
结果可以显式转换为 list
,以消除 Python 2 和 3 之间的差异:
list(map(len, names))
# Out: [4, 5, 6]
map()
可以被等效的 列表 推导或 生成器表达式 替换 :
[len(item) for item in names] # equivalent to Python 2.x map()
# Out: [4, 5, 6]
(len(item) for item in names) # equivalent to Python 3.x map()
# Out: <generator object <genexpr> at 0x00000195888D5FC0>