python 中的map(转载)

python 中的map(转载),第1张

1 map()函数的简介以及语法:

map是python内置函数,会根据提供的函数对指定的序列做映射。

map()函数的格式是:

map(function,iterable,...)

第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。

把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。

2 map()函数实例:

del square(x):

    return x ** 2

map(square,[1,2,3,4,5])   ---- -要打印结果需要 print(*map(square,[1,2,3,4,5])),这块打印了再打印就会为空

# 结果如下:

[1,4,9,16,25]

通过使用lambda匿名函数的方法使用map()函数:

map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])

# 结果如下:

[3,7,11,15,19]

通过lambda函数使返回值是一个元组:

map(lambdax, y : (x**y,x+y),[2,4,6],[3,2,1])

# 结果如下

[(8,5),(16,6),(6,7)]

当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:

map(None,[2,4,6],[3,2,1])

# 结果如下

[(2,3),(4,2),(6,1)]

通过map还可以实现类型转换

将元组转换为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]

原文链接:https://blog.csdn.net/quanlingtu1272/article/details/95482253

1、对可迭代函数'iterable'中的每一个元素应用‘function’方法,将结果作为list返回。

来个例子:

>>>def add100(x):

... return x+100

...

>>>hh = [11,22,33]

>>>map(add100,hh)

[111, 122, 133]

就像文档中说的:对hh中的元素做了add100,返回了结果的list。

2、如果给出了额外的可迭代参数,则对每个可迭代参数中的元素‘并行’的应用‘function’。(翻译的不好,这里的关键是‘并行’)

>>>def abc(a, b, c):

... return a*10000 + b*100 + c

...

>>>list1 = [11,22,33]

>>>list2 = [44,55,66]

>>>list3 = [77,88,99]

>>>map(abc,list1,list2,list3)

[114477, 225588, 336699]

看到并行的效果了吧!在每个list中,取出了下标相同的元素,执行了abc()。

3、如果'function'给出的是‘None’,自动假定一个‘identity’函数(这个‘identity’不知道怎么解释,看例子吧)

>>>list1 = [11,22,33]

>>>map(None,list1)

[11, 22, 33]

>>>list1 = [11,22,33]

>>>list2 = [44,55,66]

>>>list3 = [77,88,99]

>>>map(None,list1,list2,list3)

[(11, 44, 77), (22, 55, 88), (33, 66, 99)]


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11791611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存