首页
学习
活动
专区
圈层
工具
发布

python: map函数

API

map(function, sequence)

对 sequence 中的 item 依次执行 function(item),将 执行结果 组成一个 List 返回。

Note: 不论 function 或 sequence 参数项如何设置,最终返回值 一定是 一个list !

python2 与 python3 中 map 的不同

python2 中, map 返回 的是 list型python3 中, map 返回 的是 map object(filter对象)。需要再加上 转list 操作才能达到 python2下的效果。

代码语言:javascript
复制
lst = [1, 2, 3]
strs = map(str, lst)
print(strs)    # <map object at 0x7f002d4877b8>
print(list(strs))    # ['1', '2', '3']

Test (基于python2)

sequence == None

sequence == None 时,视为无操作,返回原list。

代码语言:javascript
复制
str_function = lambda x : str(x)
box = [10, 20, 30]
print map(None, box)

打印结果:

代码语言:javascript
复制
[10, 20, 30]

len(sequence) == 1

普通迭代计算。

代码语言:javascript
复制
str_function = lambda x : str(x)
box = [10, 20, 30]
print map(str_function, box)
assert type(map(str_function, box)[0]) == str

打印结果:

代码语言:javascript
复制
['10', '20', '30']

len(sequence) > 1

在每个list中,并行取出下标相同的元素,执行计算。

代码语言:javascript
复制
cal_function = lambda x, y : x+y
list1 = [10, 10, 10]
list2 = [1, 2, 3]
print map(cal_function, list1, list2)

打印结果:

代码语言:javascript
复制
[11, 12, 13]


下一篇
举报
领券