如果你正在学习编程,那么掌握 Python中的map函数是你升级的机会。
在我们继续之前,你需要了解什么是函数和可迭代对象:
函数是执行特定任务的代码。例如:len(), print(), str()
可迭代对象是包含一个或多个项的对象。例如:列表、字典、元组
Python中的map函数是一个允许你使用另一个函数转换整个可迭代对象的函数。这里的关键概念是转换,它可以包括但不限于:
四舍五入数字
获取每个可迭代项的长度
读者可能会提出问题:“为什么不能用 for 循环来做上面的事情?”
答案是:可以使用for循环。但是使用Python中的map函数可以节省内存(这意味着你的代码运行得更快),并且需要更少的代码。
假设我们有一个数字组成的字符串列表,我们需要将字符串列表转换为整数:
我们可以使用for循环来解决问题:
list_of_strings = ["5","6","7","8","9", "10"]
result = []
for i in range(len(list_of_strings)):
list_of_strings[i]=int(list_of_strings[i])
result.append(list_of_strings[i])
print(result,type(result[0]))
[5, 6, 7, 8, 9, 10] <class 'int'>
我们回想一下for循环背后发生了什么?
我们的计算机需要遍历每个项目(“5”、“6”、“7” 、“8”、“9”、“10”),然后转换项目,讲元素转换为整数类型,然后将该项目存储在新列表中。
虽然使用 for 循环来转换列表是有效的,但它不是最佳的。
result_1 = map(int,list_of_strings)
需要注意的是,我们此刻生成的是一个迭代器:
print(result_1)
<map object at 0x00000233AAFE5E80>
此时我们只需要把它转换为列表即可实现:
print(list(result_1))
[5, 6, 7, 8, 9, 10]
我们在这里所做的只是创建一个变量来存储我们想要转换为数字的字符串列表:
result = map(int,list_of_strings)
让我们从里到外分解上面的代码。map函数的语法如下:
map(insert function here, insert iterable here)
参数解释为:
function – 函数
iterable – 一个或多个序列
map函数不是遍历字符串列表的每个项目,而是将整个字符串列表转换为数字列表。你节省了内存,并且代码运行得更快。
如果要转换项目,使用map函数比for循环更好!
最后,map函数比for循环更优雅,将帮助你更快地编译代码。