Python中的map函数用法及示例解析
发布时间:2023-05-31 20:48:23
Python中的map函数是一个内置函数,它接受两个参数:一个是函数,另一个是可迭代对象。它会将函数应用于每个可迭代对象的元素上,并返回一个经过处理的新的可迭代对象。
map 函数的用法如下:
map(function, iterable)
其中,function 用于对 iterable 中的每个元素进行处理的函数,iterable 是一个可迭代对象,比如列表、元组、集合、字典等。
map 函数的返回值是一个新的可迭代对象,它包含了将 function 应用于每个元素之后所得到的结果。
下面是一些 map 函数的示例:
示例1:将一个列表中的所有元素都加上5
lst = [1, 2, 3, 4, 5] result = map(lambda x:x+5, lst) print(list(result))
输出结果为:
[6, 7, 8, 9, 10]
示例2:将一个列表中的所有字符串元素都转化为大写字母
lst = ["hello", "world", "PYTHON"] result = map(lambda x:x.upper(), lst) print(list(result))
输出结果为:
['HELLO', 'WORLD', 'PYTHON']
示例3:将两个列表中的元素对应相加,并生成一个新的列表
lst1 = [1, 2, 3] lst2 = [4, 5, 6] result = map(lambda x, y:x+y, lst1, lst2) print(list(result))
输出结果为:
[5, 7, 9]
示例4:过滤掉一个列表中的所有偶数,并生成一个新的列表
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] result = map(lambda x:x%2!=0, lst) print(list(result))
输出结果为:
[True, False, True, False, True, False, True, False, True]
这个示例中的 lambda 函数返回的是一个布尔值,map 函数将这个布尔值转化为了 True 和 False 两个值。如果希望输出新的列表只包含原列表中所有的奇数,可以将 lambda 函数的返回值修改为原元素本身:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] result = map(lambda x:x if x%2!=0 else None, lst) print(list(result))
输出结果为:
[1, None, 3, None, 5, None, 7, None, 9]
注意,如果 lambda 函数返回值是 None,那么执行结果中就会有 None 出现。
在实际编程中,map 函数通常会和 list 函数一起配合使用,将返回的新的可迭代对象转化为列表。
综上所述,map 函数可以实现对列表、元组、集合、字典等各种可迭代对象的处理和转换,避免了直接在循环中逐个进行元素操作的繁琐过程,提高了编程效率。
