快捷搜索:  汽车  科技

python中的map函数的用法:一日一技举例说明python中的map

python中的map函数的用法:一日一技举例说明python中的map获取输出后,我们需要返回给定数字平方的函数。 函数实现如下:假设有一个数字列表,并且想要得到每个数字的平方。返回值map()函数将给定函数应用于迭代器内的所有项目,并返回可迭代的映射对象,比如元组,列表等。map()函数将两个输入作为函数和一个可迭代对象。 给map()的函数是普通函数,它将对给定可迭代对象中存在的所有值进行迭代。

python中的map函数的用法:一日一技举例说明python中的map(1)


map()函数

python 的map()方法,作为输入提供的迭代器的所有元素应用函数。 例如,迭代器可以是列表,元组,集合,字典,字符串,并且它返回可迭代的映射对象。 另外,map()是python的内置函数。


在本教程中,我们将学习:

  • map()的语法
  • map()函数如何实现?
  • 将map()与Python内置函数一起使用
  • 使用map()和字符串作为迭代器
  • 将map()与数字列表一起使用
  • 在元组中使用map()
  • 在字典中使用map()
  • 与集合一起使用map()
  • 将map()与Lambda函数一起使用
  • 在map()函数内部使用多个迭代器

语法如下:

map(function iterator1 iterator2 ...iteratorN)


两个重要的参数:

  • function:要提供给map()的必须参数,它将应用于迭代器中所有可用的项目。
  • iterator:一个可迭代的必须对象。 它可以是列表,元组等。我们还可以将多个迭代器对象传递给map()函数。

返回值

map()函数将给定函数应用于迭代器内的所有项目,并返回可迭代的映射对象,比如元组,列表等。



map()函数如何实现?

map()函数将两个输入作为函数和一个可迭代对象。 给map()的函数是普通函数,它将对给定可迭代对象中存在的所有值进行迭代。

假设有一个数字列表,并且想要得到每个数字的平方。

获取输出后,我们需要返回给定数字平方的函数。 函数实现如下:

def square(n): return n*n

我们想得到以下数字的平方;

my_list = [2 3 4 5 6 7 8 9]


现在,让我们使用map()函数来获取my_list中每个元素的平方。

实现代码如下:

def square(n): return n*n my_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()与数字列表一起使用

要使用map()中的列表,将获取一个数字列表,并将列表中的每个数字乘以10。

我们将要使用的列表是:[2 3 4 5 6 7 8 9]。 函数myMapFunc()负责将给定数字乘以10。该函数与列表一起用于映射。


示例如下

def myMapFunc(n): return n*10 my_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]


在元组中使用map()

元组是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()函数中的迭代器。

以下示例显示map()中字典迭代器的工作方式

def myMapFunc(n): return n*10 my_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]


与集合set一起使用map()

在Python中,集合set()中的元素是无序的。 而且,set()也是一个迭代器,因此我们也可以在map()函数中使用它。

以下是在map()中使用set()作为迭代器的工作示例:

def myMapFunc(n): return n*10 my_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]


将map()与Lambda函数一起使用

在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 list2 my_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 "_" tuple1 my_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']


希望这篇文章对你们有用,

欢迎在下方讨论留言,

谢谢关注.

猜您喜欢: