83. map函数()-通过函数实现对可迭代对象的操作(适合零基础)
83. map函数()-通过函数实现对可迭代对象的操作(适合零基础)
文章目录
- 83. map函数()-通过函数实现对可迭代对象的操作(适合零基础)
- 1. 什么是map函数
- 2. map函数语法
- 3. 实操练习
- 3.1 用split方法将字符串转换成列表
- 3.2 用map函数()进行转换
- 3.3 编写代码,求列表中各元素的和
- 3.4 把列表中的元素映射为浮点数
- 4. 代码总结
1. 什么是map函数
map [mæp]:地图,映射。
在Python中map
的意思通常是指映射。
map函至少有2个参数。一个是参数是函数,另一个参数是一个或多个可迭代对象。
【功能】
map函数接收一个函数为它的参数,接收一个或多个可迭代对象为参数,返回一个迭代器。
此迭代器中的每个元素都是函数参数依次作用于可迭代对象后的结果。
上面的话理解不了的,继续往下看,看完实操就能理解上面的意思。
2. map函数语法
map(function, iterables=, ...)
-
函数名
map
-
函数后紧跟英文圆括号
( )
【参数说明】
- function:函数。
function[ˈfʌŋkʃn]:函数。
- iterables:一个或多个可迭代对象。
iterables:网络释义为可迭代对象。
【返回值】
返回迭代器。
3. 实操练习
s = "2,3,4,5"
上面的s
是一个变量,存储的是字符串类型的数据。
我们的任务是把s
中的字符转换成可以参与算术运算的数据。
要完成这个任务,我们需要分2步走。
3.1 用split方法将字符串转换成列表
split[splɪt]:使分离。
【功能】
把一个字符串按照指定的分隔符切分为字符串列表。
split( )方法语法:
str.split(sep=,maxsplit=)
sep
参数用于指定分割符。
maxsplit
参数用于指定分割的次数
【返回值】
返回的是一个字符串列表。
【代码示例】
s = "2,3,4,5"
print("s的数据类型为:",type(s))
l = s.split(",") # split方法,作用是分割字符串
print("l的数据类型为:",type(l))
print("l列表:",l)
【终端输出】
s的数据类型为: <class 'str'>
l的数据类型为: <class 'list'>
l列表: ['2', '3', '4', '5']
用split
方法将字符串s
分割后返回了一个列表。
注意这里的列表中的元素依然是字符串类型,是不能参与算术运算的。
接下来,我们用map
函数将列表中的字符串元素转换成能进行算术运算的数据。
3.2 用map函数()进行转换
【功能】
map函数接收一个函数为它的参数,接收一个或多个可迭代对象为参数,返回一个迭代器。
【map函数语法】
map(function, iterables=, ...)
-
function:函数。
-
iterables:一个或多个可迭代对象。
这里我们需要把可迭代对象列表中的元素映射为整数类型,function参数就可以指定为int函数。
iterables参数就是我们要操作的可迭代对象,这里为列表l
。
s = "2,3,4,5"
l = s.split(",")
print(map(int, l))
【终端输出】
<map object at 0x0000011D29FB2520>
map函数返回的是一个可迭代器对象。
我们可以使用list函数将其转换为列表。
s = "2,3,4,5"
l = s.split(",")
print(list(map(int, l)))
【终端输出】
[2, 3, 4, 5]
现在列表中的元素就为整数型,就是能参与计算的数据了。
3.3 编写代码,求列表中各元素的和
s = "2,3,4,5"
l = s.split(",")
list1 = list(map(int, l))
sum = 0
for i in list1 :
sum += i
print(sum)
【终端输出】
14
sum += i 等同于 sum = sum + i
3.4 把列表中的元素映射为浮点数
s = "2,3,4,5"
l = s.split(",")
print(list(map(float, l)))
【终端输出】
[2.0, 3.0, 4.0, 5.0]
当我们需要浮点数时,map
函数的function
参数就为float
函数。
4. 代码总结
s = "2,3,4,5"
l = s.split(",")
print(map(int, l))
print(list(map(int, l)))
print(list(map(float, l)))
【终端输出】
<map object at 0x0000011D29FB2FA0>
[2, 3, 4, 5]
[2.0, 3.0, 4.0, 5.0]