首先看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’)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注