内置函数map()

功能:map() 会根据提供的函数对指定序列做映射。map()的两个参数一个是函数名,另一个是列表或元组。处理后的结果,是一个列表 元素位置未改动

 map函数中第二个传的参数 只要是可迭代对象就行

语法

map() 函数语法:

map(function, iterable, ...)

参数

  • function -- 函数
  • iterable -- 一个或多个序列

1.需求,得到一个新的列表,元素的值为原来元素值的平方------>用for循环实现

num_1 = [1,2,10,5,4,6]
print(num_1)
ret = []
for i in num_1:
    ret.append(i**2)
print(ret)

2.简易版本使用函数实现列表元素平方功能封装

num_1 = [1,2,10,5,4,6]
print(num_1)
def map_test(arry):
    ret = []
    for i in num_1:
        ret.append(i**2)
    return  ret
ret = map_test(num_1)
print(ret)

3.终极版本实现 使用匿名函数传值并实现元素加1功能封装

num_1 = [1,2,10,5,4,6]
def map_test(func,arry):
    ret = []
    for i in arry:
        res = func(i)
        ret.append(res)
    return ret
print(map_test(lambda x:x+1,num_1))

4.map函数:可以传lambda x:x+1形式的函数,也可以传有实际名称的自定义函数

示例:使用map函数实现 序列中的元素+1功能

num_1 = [1,2,10,5,4,6]
res = map(lambda x:x+1,num_1)
print('内置函数map,处理结果',res)
print(list(res))

5.map函数后面跟有自定义函数

num_1 = [1,2,10,5,4,6]
def reduce_one(x):
    return x-1
print('传的是有名函数',list(map(reduce_one,num_1)))

6.map()的两个参数一个是函数名,另一个是列表或元组,字符串也可以。

msg = 'lihaifeng'#字符串
print(list(map(lambda x:x.upper(),msg)))

猜你喜欢

转载自www.cnblogs.com/renzhiqiang/p/10930539.html
今日推荐