a_list = [1,2,3,4]
def fun(x):
return x+1
a_map = map(fun,a_list)
print(type(a_map))
输出:
class ‘map’
由此可见,map()函数的返回值并不是一个列表,而是一个map对象。那么该如何打印a_map呢?
print(a_map)
输出:
map object at 0x7f8929f25048
并不能显式的输出map对象的内容。那么我们试一下
print(next(a_map))
输出:2
此处说明map是可以被迭代的对象
for i,num in enumerate(a_map):
print("{}:{}".format(i,num))
输出:
0:2
1:3
2:4
3:5
那么如何将map对象转化为列表使用呢?
a_map = map(fun,a_list)
a_map_list = list(a_map)
print(type(a_map_list))
print(a_map_list)
输出:
class ‘list’
[2, 3, 4, 5]
要注意的是,我们必须将map对象赋给另外的变量在进行输出,不然就会有
a_map = map(fun,a_list)
print(list(a_map)) ·1
print(list(a_map)) ·2
输出: [2, 3, 4, 5]
[]
因为迭代器的原因,注定指针不会退回去,执行print(list(a_map)) ·2,再次输出[2, 3, 4, 5],只能输出空的列表。