格式:
map(func, seq1[, seq2,…])
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
python3.0 返回的是迭代器,必要时需要遍历得到结果或list(map())
和Java里面的Map不是一个概念了。Java里面的map是一种kv数据结构。初学用map()有点弄混
测试代码:
list1 = [11,22,33]
list2 = [44,55,66,222]
list3 = [77,88,990,231,223]
def funca(x,y,z):
return (x,y,z)
ret0 = map(funca , list1)
ret1 = map(funca ,list1,list2,list3)
ret2 = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10,88])
ret3 = map(funca,list1,list2,list3)
print(list(map(lambda x , y : x ** y, [2,4,6],[3,2,1])))
print(list(ret1))
print(list(ret2))
print('-'.join(map(str, ['model', 'level', 'fps'])))
打印结果
[8, 16, 6]
[(11, 44, 77), (22, 55, 88), (33, 66, 990)]
[3, 7, 11, 15, 19]
model-level-fps
x_values = [1,2,3,4,5]
y_values = list(map(lambda x:x**2,x_values))