概述
文章目录
- map 函数支持自定义的函数
- map 函数支持 lambda 函数
- map 函数还支持多个列表的映射和计算
- 通过lambda函数使返回值是一个元组:
- 当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
- 通过map还可以实现类型转换
- 将元组转换为list:
- 将字符串转换为list:
- 提取字典中的key,并将结果放在一个list中:
map是python内置函数,会根据提供的函数对指定的序列做映射
其语法是 map(function, iterable, …)
第一个参数接受一个函数名,
后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。
注意,map不改变原list,而是返回一个新list。
当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
1、map方法可以接收函数作为参数,并将其映射于列表的多个元素。
2、Python 2 中返回列表,Python 3 中返回迭代器,需要使用 list方法再生成列表。
3、map 函数不仅支持自定义的函数和 lambda 函数,还支持 Python 自带的函数。
map 函数支持自定义的函数
>>> l = map(lambda x: x ** 2, [1, 2, 3, 4, 5])
>>> print(l)
<map object at 0x03553790>
>>> print(list(l))
[1, 4, 9, 16, 25]
map 函数支持 lambda 函数
del square(x):
return x ** 2
map(square,[1,2,3,4,5])
# 结果如下:
[1,4,9,16,25]
map 函数还支持多个列表的映射和计算
>>> l1 = [1, 2, 3]
>>> l2 = [4, 5, 6, 7]
>>> l3 = [8, 9]
>>> print(list(map(lambda x,y,z:x+y+z, l1, l2, l3)))
[13, 16]
lambda 函数中的 x, y, z 分别对应列表 l1、l2 和 l3 中的元素,计算后的生成的列表长度取决于各个列表的最短长度。
通过lambda函数使返回值是一个元组:
map(lambda x, 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]
下面来看一道关于 map 函数的经典考题:有两个字符串 A 和 B,现在要统计字符串 A 中有多少个字符也在字符串 B 中可以找到,常规函数解法如下:
>>> strA = "aAAAbBCC"
>>> strB = "aA"
>>> def count1(str1, str2):
a = 0
for c in str1:
if c in str2:
a += 1
return a
>>> count1(strA, strB)
4
使用 map 函数经典解法如下
>>> strA = "aAAAbBCC"
>>> strB = "aA"
>>> print(sum(map(strA.count, strB)))
4
分析下上面这段代码,
Python 自带的 string.count(char) 函数的作用是统计一个字符串 string 含有字符 char 的数量,在本例中 strB 相当于 char 的一个参数列表 [“a”, “A”],map 函数先统计 strA 中字符 a 的数量,再统计 strA 中字符 A 的数量,获得列表 [1, 3], 然后将它们相加,即可获得字符串 A 中总共有多少字符可以在 B 中找到。
最后
以上就是纯情白猫为你收集整理的python 中的 map() 函数——匿名函数:返回值是一个函数的地址,即函数对象的全部内容,希望文章能够帮你解决python 中的 map() 函数——匿名函数:返回值是一个函数的地址,即函数对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复