欢迎来到田晓东的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

map()函数

语法:
map(func, seq1[, seq2,…])
1、第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个列表
2、如果func为None,作用同zip()
3、无法处理seq长度不一致、对应位置操作类型不一致的情况,报错

用法1、当seq只有一个时,函数func作用于这个seq的每个元素上,返回一个新的seq

#使用lambda
    print(map(lambda x: x % 2, range(7)))
    [0, 1, 0, 1, 0, 1, 0]
#使用列表解析
    print([x % 2 for x in range(7)])
    [0, 1, 0, 1, 0, 1, 0]

用法2、当seq多于一个时,map可以并行(注意是并行)地执行每个seq的元素

#返回列表:
print(map(lambda x , y : x ** y, [2,4,6],[3,2,1]))
[8, 16, 6]
#返回元组
print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]
#func函数为None时,相当于zip()
print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]

用法3、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')

posted on 2022-02-17 17:09  匍匐的仰望者  阅读(123)  评论(0编辑  收藏  举报

导航