(1)map()函数:是python内置函数,主要作用是:接收一个“函数”和一个序列(list),对序列(list)中的元素,依次调用“函数”计算,并返回一个新的序列(list)

(2)map() 函数语法:

map(function,iterable, …)
 参数
 function – 函数
 iterable – 一个或多个序列

(备注:python 3.0中的map()函数返回的是iterators,无法像python2.x直接返回一个list,因此需加上一个list.index,转换成list)

案例说明:

x = [1,2,3,4,5,6,7]
y = [1,2,3,4,5,6,7]
'''lambda定义x和y的函数公式为:x+y,并通过map将列表x和y依次
传给lambda定义的函数:x+y,执行相加操作'''
z = map(lambda x,y:x+y,x,y)
 #因为python3.0,map()函数返回的是iterators,非list列表
print('直接输出map为:',z,'\n') 

 #为了能输出list,需要将map转换成list类型
print('map转换成list后输出为:',list(z))

python map list python map list 函数_python map list


备注:如果传入的列表x和y长度不一致,按照最小的元素个数计算:

python map list python map list 函数_python_02

案例说明2:

def sum(x):            #自定义一个函数:x*2
	return x*2
	
y = map(sum,[1,2,3])  #将序列[1,2,3],按照顺序依次传给函数sum(),执行x*2

print(list(y))  #输出相乘后的list

python map list python map list 函数_python_03

案例三:

def sum(x,y):            #自定义一个函数:x+y
	return x+y

list_x = [1,2,3,4,5]
list_y = [6,7,8,9,0]
	
list_z = map(sum,list_x,list_y)  #将参数list_x,list_y,按照顺序依次传给函数sum(),执行x*2

print(list(list_z))  #输出相乘后的list

python map list python map list 函数_python_04


案例四:

关于元素为“字典”组成的序列list说明:

例如:

user = [
 {‘name’:‘xuab’,‘password’:‘123’,‘usertype’:1},
 {‘name’:‘hyc’,‘password’:‘1314’,‘usertype’:2},
 {‘name’:‘yq’,‘password’:‘520’,‘usertype’:3},
 {‘name’:‘lcz’,‘password’:‘1314520’,‘usertype’:4},
 {‘name’:‘yqq’,‘password’:‘520’,‘usertype’:5}
 ]

user列表是有5个单独的“字典"组成的列表,一个字典组,是一个序列元素(例如list = [1,2,3,4,5],这个列表中,1是一个元素,而由字典组成的列表,则整个字典:{‘name’:‘xuab’,‘password’:‘123’,‘usertype’:1},是一个列表元素)

解答:因为每个字典的key名称都一样,所有获取内嵌字典中的key,可以通过list[key]来获取,但是因为这个是字典组组成的列表,无法直接通过user[name]获取name的值,因此需要用到map和lambda函数组合获取

user_name_list = list(map(lambda name: name['name'],user))  
'''
lambda name:name['name'],作用是自定义隐藏函数:name['name'],
参数name,['name']是字典中的键:name

map,作用是:接收一个“函数:name['name']”和一个序列(user),
对序列(user)中的元素(这里是内嵌字典序列,一个字典是一个元素),
依次调用“name['name']”计算,并返回一个新的序列(list)'''

print(user_name_list)

python map list python map list 函数_函数返回_05

简单的案例说明: