Python map函数用法详解
Python中的map()函数是一种内置函数,它将一个函数应用于一个可迭代序列(列表、元组等)的每个元素,并返回一个对象列表,代表该函数对每个元素的处理结果。map()函数的常用语法如下:
map(function, iterable, …)
其中function是对每个元素执行的函数,iterable是可迭代序列,可以是多个序列,如果存在多个序列,则并行地对每个元素执行函数。map()函数返回一个迭代器对象,可以转换为列表等其他数据类型。
map()函数的主要特点是能够批量地对一个迭代序列中的多个元素进行处理,并且能够快速地完成这个过程。与循环相比,map()函数能够显著地减少代码量,并且能够提高代码的可读性。此外,由于map()函数是一个迭代器,因此当处理大量元素时,它能够帮助我们减少内存占用。
下面是一些常见的map()函数用法:
1.将列表中所有元素转换为字母大写形式
示例代码:
names = ['john', 'mike', 'lisa'] caps_names = list(map(str.upper, names)) print(caps_names)
输出结果:
['JOHN', 'MIKE', 'LISA']
解释:
这个例子中,我们首先定义了一个名为names的列表,其中包含三个字符串元素。接着,我们使用map()函数将str.upper()函数应用于列表中的每个元素。str.upper()函数是用于将字符串全部转换为大写的内置函数。最后,使用list()函数将迭代器转换为列表,以便我们可以查看结果。
2. 将两个列表中的元素一一对应相加
示例代码:
a = [1, 2, 3] b = [4, 5, 6] c = list(map(lambda x, y: x + y, a, b)) print(c)
输出结果:
[5, 7, 9]
解释:
这个例子中,我们首先定义了两个列表a和b,它们包含三个整数元素。然后,我们通过使用lambda函数将列表中的元素一一对应相加。最后,使用list()函数将迭代器转换为列表,以便我们可以查看结果。
3. 针对嵌套列表中的所有元素进行计算
示例代码:
a = [[1, 2, 3], [4, 5, 6]] b = list(map(lambda x: [i * 2 for i in x], a)) print(b)
输出结果:
[[2, 4, 6], [8, 10, 12]]
解释:
这个例子中,我们首先定义了一个嵌套列表a,其中包含两个列表,每个列表包含三个整数元素。然后,我们使用lambda函数将嵌套列表中的元素分别乘以2。最后,使用list()函数将迭代器转换为列表,以便我们可以查看结果。
4. 将字符串列表转换为整数
示例代码:
strs = ['1', '2', '3'] ints = list(map(int, strs)) print(ints)
输出结果:
[1, 2, 3]
解释:
这个例子中,我们首先定义了一个列表strs,其中包含三个字符串元素。然后,我们使用map()函数将int()函数应用于列表中的每个元素。int()函数是用于将字符串转换为整数的内置函数。最后,使用list()函数将迭代器转换为列表,以便我们可以查看结果。
5. 实现列表中元素从大到小的排序
示例代码:
nums = [4, 2, 5, 1, 3] sorted_nums = list(map(str, sorted(nums, reverse=True))) print(sorted_nums)
输出结果:
['5', '4', '3', '2', '1']
解释:
这个例子中,我们首先定义了一个列表nums,其中包含五个整数元素。然后,我们使用sorted()函数对列表进行排序,并使用reverse参数来指定逆序排序。接着,我们使用map()函数将str()函数应用于排序后的每个元素,以便将它们转换为字符串类型。最后,使用list()函数将迭代器转换为列表,以便我们可以查看结果。
总结:
map()函数是Python中很有用的函数,它能够快速地对一个迭代序列中的多个元素进行处理,并且能够减少代码量,并提高代码的可读性。同时,由于map()函数是一个迭代器,因此当处理大量元素时,它能够帮助我们减少内存占用。
