博友们,你们好,很高兴能在这里和大家分享技术文章,我是
Amo Xiang
,是一名在职企业员工,Amo
来源于上家公司的英文名,本意是爱
。作为刚入行几年互联网行业的小白,博主写博客一方面是为了记录自己的学习过程以及所犯的错误,更多的是希望能够帮助到很多处于起步阶段的萌新,让他们少走弯路。在编写文章时,参考了大量书籍及一些互联网大佬的资源,并结合了自己的工作经验,博主本着科学、严谨的态度、力求精益求精,但疏漏之处在所难免,敬请广大博友批评指正。博客主页:https://blog.csdn.net/xw1680?spm=1011.2124.3001.5113
目录
1. map 函数的介绍
1.1 功能
map() 函数接收一个函数和一个或者多个可迭代对象为参数,返回一个迭代器。此迭代器中每个元素都是函数参数依次作用于可迭代对象后的结果。
1.2 语法
map(func, *iterables) --> map object
参数说明:
(1) func:函数。
(2) iterables:一个或多个可迭代对象。
(3) 返回值:返回迭代器。
注意:map() 函数在 Python 2.x 返回的是列表,而在 Python 3.x 中返回的是迭代器。本文基于 Python 3.x 进行演示。
2. map 函数的应用
2.1 将列表中的元素转换为 Unicode 字符
定义一个整数列表,通过 map() 函数实现将该列表每一个元素转换为 Unicode 字符,代码如下:
num_list = [20320, 24456, 26834, 26834]
a = map(chr, num_list)
print(a) # <map object at 0x00000226A7C629C8>
print(list(a)) # ['你', '很', '棒', '棒']
从程序的运行结果可以看出,map() 函数返回的是一个迭代器,通过使用 list() 函数将其转换为列表。
2.2 规范英文的大小写格式
通过 map() 函数规范英文短句中单词的大小写格式 (即首字母大写、其余字母小写),代码如下:
my_list = ["i", "am", "Amo", "xiang"] # 创建列表
# def function(x): # 定义函数
# return x[0].upper() + x[1:].lower() # 实现首字母大写,其他字母小写
print(f"规范后的英文短句: {list(map(lambda x: x[0].upper() + x[1:].lower(), my_list))}")
# 规范后的英文短句: ['I', 'Am', 'Amo', 'Xiang']
aa = list(map(lambda x: x[0].upper() + x[1:].lower(), my_list))
print(" ".join(aa)) # I Am Amo Xiang
2.3 对列表中的元素进行平方计算
生成 0-9 的数字列表,然后通过 map() 函数实现对该列表每一个元素的平方计算,代码如下:
list1 = [i for i in range(10)]
list2 = map(lambda x: x ** 2, list1) # 返回一个迭代器对象
print(list(list2)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2.4 传入多个可迭代对象
当使用 map() 函数传入多个可迭代对象,且里面的元素长度不一致时,生成的迭代器以最短长度为主,代码如下:
list1 = [1, 3, 5] # 列表1
list2 = [2, 4, 6, 8, 10] # 列表2
# def func(x,y):
# return x+y
result = map(lambda x, y: x + y, list1, list2) # 返回一个迭代器对象
print(list(result)) # 输出 ==> [3, 7, 11]
当 map() 函数传入多个可迭代对象时,参数 func 必须能够接收足够多的参数,以保证每个可迭代对象同一索引的值均能正确传入函数,否则将出现 TypeError 错误提示。
2.5 使用 lambda 表达式对列表中的元素进行立方计算
首先定义一个列表,然后在 map() 函数中使用匿名函数 lambda 表达式,来实现对该列表中每一个元素的立方计算。代码如下:
s = [1, 2, 3]
s_map = map(lambda x, y, z: x * y * z, s, s, s)
print(list(s_map)) # [1, 8, 27]
2.6 使用 map 函数实现数据类型转换
实现将随机生成的三位数的数字分割为列表,首先将数字转换成字符型,但此时列表中的元素也同时变成了字符型数字,这时还需要通过 map() 函数对数据类型进一步转换为整型。例如,数字 612 ⇒ [‘6’,‘1’,‘2’] ⇒ [6,1,2],代码如下:
import random
# 随机生成10个三位数的数字
data_list = random.sample(range(100, 1000), 10)
for i in data_list:
# 将随机的三位数分割为列表,并使用map()函数将字符型数字转换为整型
print(str(i))
num_list = list(map(int, str(i)))
print(num_list)
感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!