map()
函数是 Python 内置函数之一,用于对可迭代对象(如列表、元组等)中的每个元素应用指定的函数,并返回一个包含结果的迭代器。
map()
函数的语法如下:
map(function,iterable,……)
其中,function是一个函数名,是一种功能,为实现我们一些要求的转换,可以是python内置的,比如int,将值整型化,还可以是自定义的或使用 lambda 表达式定义的匿名函数参数。iterable 是一个可迭代对象,如列表、元组、集合等。
map() 函数的工作原理如下:
1、map() 函数将可迭代对象 iterable 中的每个元素逐个传递给函数 function 进行处理。
2、function 对每个元素进行处理,并返回处理后的结果。
3、map() 函数将处理后的结果收集起来,并返回一个迭代器,该迭代器包含了所有处理后的结果。
下面是一些例子来说明 map() 函数的用法:
例1:将一个函数应用于一个可迭代对象的每个元素
numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared)) # 输出: [1, 4, 9, 16, 25]
例2:接受多个函数和多个可迭代对象作为参数,并将这些函数应用于相应的序列
numbers = [1, 2, 3]
strings = ["one", "two", "three"]
result = map(lambda x, y: (x, y), numbers, strings)
print(list(result)) # 输出: [(1, 'one'), (2, 'two'), (3, 'three')]
例3:可以与内建函数一起使用,例如 str.upper()
来转换字符串为大写,str.lower()
来转换字符串为小写
words1 = ["hello", "world", "python", "map"]
words2 = ["HELLO", "WORLD", "PYTHON", "MAP"]
upper_words = map(str.upper, words1)
print(list(upper_words)) # 输出: ['HELLO', 'WORLD', 'PYTHON', 'MAP']
lower_words = map(str.lower, words2)
print(list(lower_words)) # 输出:['hello', 'world', 'python', 'map']
例4:创建自定义函数并使用 map()
来应用它
def add_five(x):
return x + 5
numbers = [1, 2, 3, 4, 5]
result = map(add_five, numbers)
print(list(result)) # 输出: [6, 7, 8, 9, 10]
例5:与 lambda 表达式结合使用,以简化代码
numbers = [1, 2, 3, 4, 5]
doubled = map(lambda x: x * 2, numbers)
print(list(doubled)) # 输出: [2, 4, 6, 8, 10]
例6:转化数据类型
a=[3.7,4,5]
b=list(map(int,a))
c=list(map(str, a))
print(b) #输出:[3, 4, 5]
print(c) #输出:['3.7', '4', '5']
需要注意的是,map()
函数返回的是一个迭代器,需要使用 list()
函数将其转换为列表形式。如果不进行转换,可以直接使用迭代器进行迭代访问处理后的结果。