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

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 函数可以实现对列表、元组、集合、字典等各种可迭代对象的处理和转换,避免了直接在循环中逐个进行元素操作的繁琐过程,提高了编程效率。