欢迎访问宙启技术站
智能推送

Python中的map()函数用法详解

发布时间:2023-05-22 17:54:19

Python中的map()函数是一个很有用的内置函数,它可以将一个序列中的每个元素应用到一个函数上,并将结果作为一个新的列表返回。map()函数的语法如下:

map(function, iterable, ...)

其中,function是一个函数,可接受一个参数用于处理iterable中的每个元素,iterable是一个序列(如list、tuple、字符串等)。map()函数返回的是一个迭代器,因此需要使用list()函数将其转换成列表。

下面详细介绍一下map()函数的用法:

1. 将序列中的每个元素应用到一个函数上

例1:将列表中的每个元素转换成字符串类型

lst = [1, 2, 3, 4, 5]
lst_new = list(map(str, lst))
print(lst_new)  # 输出 ['1', '2', '3', '4', '5']

例2:将字符串中的每个字符转换成大写字母

s = 'hello world'
s_new = ''.join(map(str.upper, s))
print(s_new)  # 输出 HELLO WORLD

2. 将多个序列中的元素依次应用到一个函数上

例3:将两个列表相应位置的元素相加

lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst_new = list(map(lambda x, y: x + y, lst1, lst2))
print(lst_new)  # 输出 [5, 7, 9]

3. map()函数可以将一个序列中的每个元素映射成任意数据类型

例4:将字符串列表中的每个字符串转换成数字类型

lst = ['1', '2', '3', '4', '5']
lst_new = list(map(int, lst))
print(lst_new)  # 输出 [1, 2, 3, 4, 5]

4. map()函数可以一次性将多个序列中的元素映射成一个新的数据类型

例5:将两个列表中的元素打包成元组

lst1 = [1, 2, 3]
lst2 = ['a', 'b', 'c']
lst_new = list(map(lambda x, y: (x, y), lst1, lst2))
print(lst_new)  # 输出 [(1, 'a'), (2, 'b'), (3, 'c')]

5. map()函数也可以用于对序列中的元素进行筛选

例6:将列表中的奇数元素筛选出来

lst = [1, 2, 3, 4, 5]
lst_new = list(filter(lambda x: x % 2 != 0, lst))
print(lst_new)  # 输出 [1, 3, 5]

综上所述,map()函数是一个非常实用的内置函数,可以对一个序列中的每个元素进行处理,也可以将多个序列中的元素组合起来进行处理。