map()函数
Python 的map()方法,作为输入供应的迭代器的所有元素运用函数。 例如,迭代器可以是列表,元组,凑集,字典,字符串,并且它返回可迭代的映射工具。 其余,map()是python的内置函数。
在本教程中,我们将学习:
语法如下:

map(function, iterator1,iterator2 ...iteratorN)
两个主要的参数:
function:要供应给map()的必须参数,它将运用于迭代器中所有可用的项目。iterator:一个可迭代的必须工具。 它可以是列表,元组等。我们还可以将多个迭代器工具通报给map()函数。返回值
map()函数将给定函数运用于迭代器内的所有项目,并返回可迭代的映射工具,比如元组,列表等。
map()函数如何实现?map()函数将两个输入作为函数和一个可迭代工具。 给map()的函数是普通函数,它将对给定可迭代工具中存在的所有值进行迭代。
假设有一个数字列表,并且想要得到每个数字的平方。
获取输出后,我们须要返回给天命字平方的函数。 函数实现如下:
def square(n):return nn
我们想得到以下数字的平方;
my_list = [2,3,4,5,6,7,8,9]
现在,让我们利用map()函数来获取my_list中每个元素的平方。
实当代码如下:
def square(n): return nnmy_list = [2,3,4,5,6,7,8,9]updated_list = map(square, my_list)print(updated_list)print(list(updated_list))
输出:
<map object at 0x0000002C59601748>[4, 9, 16, 25, 36, 49, 64, 81]
输出结果我们可以看到,map()函数的输出为<map object at 0x0000002C59601748>的map()工具。
然后我们利用for循环或利用list()方法对输出进行迭代,以获取终极结果。
因此,利用map()函数,我们可以得到每个数字的平方。给map的列表是[2,3,4,5,6,7,8,9],然后利用square()函数输出 从map()得到的是[4,9,16,25,36,49,64,81]。
map()将函数square()运用于列表中的所有元素。 例如,my_list变量并利用每个数字的平方更新列表。 输出存储在updated_list变量中。
将map()与Python内置函数一起利用map()函数是一个内置函数,可以与Python中其他内置函数一起利用。 在以下示例中,我们利用round()内置函数给值进行四舍五入.
示例如下:
创建的列表是my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]。
我们须要得到列表中每个元素四舍五入的值。 我们利用round()函数。
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]updated_list = map(round, my_list)print(updated_list)print(list(updated_list))
输出:
<map object at 0x000000E65F901748>[3, 4, 4, 6, 6, 8, 8, 10]
round()函数运用于列表中的所有元素,它返回一个列表,个中所有值按照四舍五入的值输出。
利用map()和字符串作为迭代器
我们还可以在map()中传入字符串参数。 在Python中,字符串的浸染类似于数组,因此我们可以在map()中利用它。
在示例中,我们有一个函数myMapFunc(),卖力将给定的字符串转换为大写。 将函数myMapFunc()供应给map()函数。map函数将通过将字符串通报给myMapFunc()来转换给定的大写字符串。
def myMapFunc(s): return s.upper()my_str = "welcome to guru99 tutorials!"updated_list = map(myMapFunc, my_str)print(updated_list)for i in updated_list: print(i, end="")
输出:
<map object at 0x000000DF2E711748>WELCOME TO GURU99 TUTORIALS!
要利用map()中的列表,将获取一个数字列表,并将列表中的每个数字乘以10。
我们将要利用的列表是:[2,3,4,5,6,7,8,9]。 函数myMapFunc()卖力将给天命字乘以10。该函数与列表一起用于映射。
示例如下:
def myMapFunc(n): return n10my_list = [2,3,4,5,6,7,8,9]updated_list = map(myMapFunc, my_list)print(updated_list)print(list(updated_list))
输出:
<map object at 0x000000EE2C061898>[20, 30, 40, 50, 60, 70, 80, 90]
元组是Python中的一个工具,以逗号分隔值并括在圆括号中的元素。 在以下示例中,我们将利用带有字符串值的元组。 我们将利用函数将传入的字符串转换为大写字母。
示例如下:
def myMapFunc(n): return n.upper()my_tuple = ('php','java','python','c++','c')updated_list = map(myMapFunc, my_tuple)print(updated_list)print(list(updated_list))
输出:
<map object at 0x0000009C3C3A16A0>['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
利用大括号{}创建字典。 由于字典是迭代器,因此我们可以在map()函数中利用它。 现在让我们利用字典作为map()函数中的迭代器。
以下示例显示map()中字典迭代器的事情办法
def myMapFunc(n): return n10my_dict = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_dict)print(finalitems)print(list(finalitems))
输出:
<map object at 0x0000007EB451DEF0>[20, 30, 40, 50, 60, 70, 80, 90]
在Python中,凑集set()中的元素是无序的。 而且,set()也是一个迭代器,因此我们也可以在map()函数中利用它。
以下是在map()中利用set()作为迭代器的事情示例:
def myMapFunc(n): return n10my_set = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_set)print(finalitems)print(list(finalitems))
输出:
<map object at 0x000000AC8F05DEF0>[20, 30, 40, 50, 60, 70, 80, 90]
在Python中,lambda表达式用于布局匿名函数。 必须利用lambda关键字,就像利用def定义函数方法一样。
因此,在以下示例中,我们将在map()中利用lambda函数。 lambda函数会将列表中的每个值乘以10。
示例如下:
my_list = [2,3,4,5,6,7,8,9]updated_list = map(lambda x: x 10, my_list)print(updated_list)print(list(updated_list))
输出:
<map object at 0x000000BD18B11898>[20, 30, 40, 50, 60, 70, 80, 90]
在map()函数内部利用多个迭代器
示例1:将两个列表迭代器通报给map()
我们可以将多个迭代器(即列表,元组等)同时传入到map()函数中。
例如,如果要添加两个列表。 利用map()函数可以完成相同的操作。 我们利用两个列表my_list1和my_list2。
不才面的示例中,将my_list1中的第一项添加到my_list2的第一项中。 函数myMapFunc()接管my_list1和my_list2的值并返回两者之和。
以下是利用map()函数添加两个给定列表的例子:
def myMapFunc(list1, list2): return list1+list2my_list1 = [2,3,4,5,6,7,8,9]my_list2 = [4,8,12,16,20,24,28]updated_list = map(myMapFunc, my_list1,my_list2)print(updated_list)print(list(updated_list))
输出:
<map object at 0x0000004D5F751860>[6, 11, 16, 21, 26, 31, 36]
示例2:将一个元组和一个列表迭代器通报给map()
我们将在map()函数中利用列表和元组迭代器。 该函数是给map的-myMapFunc()将从列表和元组中获取元素值。 这些元素将带有下划线(_)。 事情示例如下所示:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1my_list = ['a','b', 'b', 'd', 'e']my_tuple = ('PHP','Java','Python','C++','C')updated_list = map(myMapFunc, my_list,my_tuple)print(updated_list)print(list(updated_list))
输出:
<map object at 0x00000059F37BB4E0>['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
希望这篇文章对你们有用,
欢迎不才方谈论留言,
感激关注.