首先看map函数的格式定义:
map(function,sequence,sequence_1)
Functiuon:代表一个函数名,也能是lambda表达式,sequence,sequence_1表示一个系列,函数返回的是一个集合.
当只有一个sequence时,map()函数是把Sequence系列中的每一个元素,通过Function的操作,得到新的元素值,再把新的元素值组合成一个系列
例:
print map(lambda x:x*2, range(0,4))
返回:
[0, 2, 4, 6]
def f(x):
return x*2
print map(f, range(0,4))
返回:
[0, 2, 4, 6]
当sequence有多个时,这时要注意几点:
一是function如果是使用先前定义的函数名,则自这义函数中的参数的个数必须与sequence的个数相同,如果是使用lambda表达式,且在”:”后面有两个以上的表达式,则返回的是由元组组合的列表.
二是所有sequence中的元素个数必须相同
def f(x,y): return x*y print map(f, range(0,4),range(5,9))
返回:
[0, 6, 14, 24]
print map(lambda x,y:x*y, range(0,4),range(5,9))
返回:
[0, 6, 14, 24]
print map(lambda x,y,z:(x*y*z, x+y), range(0,4),range(5,9),range(1,5))
返回:
[(0, 5), (12, 7), (42, 9), (96, 11)]
map()函数可以实现将其他类型的数转换成list
***将元组转换成list***
>>> map(int, (1,2,3))
[1, 2, 3]
***将字符串转换成list***
>>> map(int, ‘1234’)
[1, 2, 3, 4]
***提取字典的key,并将结果存放在一个list中***
>>> map(int, {1:2,2:3,3:4})
[1, 2, 3]
***字符串转换成元组,并将结果以列表的形式返回***
>>> map(tuple, ‘agdf’)
[(‘a’,), (‘g’,), (‘d’,), (‘f’,)]
#将小写转成大写
def u_to_l (s):
return s.upper()
print map(u_to_l,’asdfd’)