文章目录
- 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 函数支持自定义的函数
1
2
3
4
5
6>>> 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 函数
1
2
3
4
5
6
7
8del square(x): return x ** 2 map(square,[1,2,3,4,5]) # 结果如下: [1,4,9,16,25]
map 函数还支持多个列表的映射和计算
1
2
3
4
5
6
7>>> 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函数使返回值是一个元组:
1
2
3
4
5map(lambda x, y : (x**y,x+y),[2,4,6],[3,2,1]) # 结果如下 [(8,5),(16,6),(6,7)]
当不传入function时,map()就等同于zip(),将多个列表相同位置的元素归并到一个元组:
1
2
3
4
5map(None,[2,4,6],[3,2,1]) # 结果如下 [(2,3),(4,2),(6,1)]
通过map还可以实现类型转换
将元组转换为list:
1
2
3
4
5map(int,(1,2,3)) # 结果如下: [1,2,3]
将字符串转换为list:
1
2
3
4
5map(int,'1234') # 结果如下: [1,2,3,4]
提取字典中的key,并将结果放在一个list中:
1
2
3
4
5map(int,{1:2,2:3,3:4}) # 结果如下 [1,2,3]
下面来看一道关于 map 函数的经典考题:有两个字符串 A 和 B,现在要统计字符串 A 中有多少个字符也在字符串 B 中可以找到,常规函数解法如下:
1
2
3
4
5
6
7
8
9
10
11
12>>> 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 函数经典解法如下
1
2
3
4
5
6>>> 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内容请搜索靠谱客的其他文章。
发表评论 取消回复