Python Map 函数详解
作者:IT孔乙己 发布时间:2022-12-28 16:17:09
如果你正在学习编程,那么掌握 Python map 函数是你升级的机会。
想象一下:你想成为一个更高效的程序员,你希望代码编译得更快,你想用你强大的编程知识给同行留下深刻印象。如果你对其中任一点有共鸣,那么你来对地方了。
在我们继续之前,你需要了解什么是函数和可迭代对象:
函数是执行特定任务的代码。
例如:len()
, print()
, str()
可迭代对象是包含一个或多个项的对象。
例如:列表
、字典
、元组
Python map 函数是一个允许你使用另一个函数转换整个可迭代对象的函数。这里的关键概念是转换,它可以包括但不限于:
将字符串转换为数字
四舍五入数字
获取每个可迭代项的长度
你可能想知道,“为什么我不能用 for 循环来做上面的事情?”
答案是:你可以。但是使用 Python map 函数可以节省内存(这意味着你的代码运行得更快),并且需要更少的代码。让我们通过一个例子来表达我的意思。
首先我们从 for 循环开始
假设你有一个数字组成的字符串列表,你需要将字符串列表转换为整数:
list_of_strings = ["5","6","7","8","9", "10"]
你可以使用空列表和 for 循环来完成此操作:
list_of_strings = ["5","6","7","8","9", "10"]
result = []
for string in list_of_strings:
result.append(int(string))
print(result)
这个示例运行的结果是:
输出:[5, 6, 7, 8, 9, 10]
for 循环背后发生了什么
你可能对结果感到满意,但想想你的代码刚刚做了什么。
你告诉计算机遍历每个项目(“5”、“6”、“7” 等),转换项目,然后将该项目存储在新列表中。虽然使用 for 循环来转换列表是有效的,但它不是最佳的。
Python map 函数(附示例代码)
相反,让我们使用 Python map 函数来生成最佳结果。我们将从需要转换的字符串列表开始:
list_of_strings = ["5","6","7","8","9", "10"]
然后我们将使用 Python map 函数将字符串列表转换为整数列表:
result = map(int,list_of_strings)
print(list(result))
如果你运行上面的例子,你会得到相同的结果:
输出:[5, 6, 7, 8, 9, 10]
在我们了解为什么 Python map 函数比使用 for 循环更好之前,让我们分解一下我们刚刚做的事情:
list_of_strings = ["5","6","7","8","9", "10"]
我们在这里所做的只是创建一个变量来存储我们想要转换为数字的字符串列表。
result = map(int,list_of_strings)
让我们从里到外分解上面的代码。Python map 函数的语法如下:
map(insert function here, insert iterable here)
map()
只是 Python map 函数的名称,没什么特别的。
insert function here
是你将在函数中写入的空间。在上面的代码示例中,我们使用了 int 函数。我们可以使用另一个内置函数,如 len() ,或者我们可以构建自己的函数并在这里也使用它。
insert iterable here 是你将在你选择的可迭代项目中写入的空间。在本例中,我们插入了列表(list_of_strings)。
result 是我们存储新转换项目的变量。
让我们转到最后一行代码。同样,它将从内而外执行:
print(list(result))
list()
接收我们新转换的可迭代项,并告诉我们的计算机这些项是列表的一部分。
print()
打印出我们的新列表!
Python map 函数背后发生了什么
Python map 函数不是遍历字符串列表的每个项目,而是将整个字符串列表转换为数字列表。你节省了内存,并且代码运行得更快。
如果要转换项目,使用 Python map 函数比 for 循环更好
最后,Python map
函数比 for 循环更优雅,将帮助你更快地编译代码。
使用 Python map 函数将有助于将你的编程技能提升到一个新的水平,让你成为一名更好的程序员。在此过程中,你甚至可以用这项新技能给你的同行留下深刻印象。
来源:https://blog.csdn.net/pythondby/article/details/121905566


猜你喜欢
- pom.xml文件中引入如下内容<dependency><groupId>com.github.ulisesbocc
- 本文实例讲述了JavaScript简单获取页面图片原始尺寸的方法。分享给大家供大家参考,具体如下:这里通过Image()对象获取原始宽高这种
- 说完了理论,我们来做点实事。这篇文章将介绍使用 Javascript 实现的动画组件。下面记录下当时编写这个组件的考虑的些问题,对技术细节感
- PDOStatement::getColumnMetaPDOStatement::getColumnMeta — 返回结果集中一列的元数据(
- 如下所示:def list_dict_duplicate_removal(): data_list = [{"a&qu
- 只能是一些限定的东西运行代码框ENTER键可以让光标移到下一个输入框 <input onkeydown="if(event.
- 本文仅作为基本操作流程的记录,不进行细节描述一、环境安装1、安装Pycharm在官网上下载最新版本Pycharm安装即可2、安装pyQT5p
- 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团。一、功能介绍通过微信公众平台实现在
- 在仓库目录下新建一个名为.gitignore的文件(因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git
- javascript作为一个动态语言,动态解析脚本的方法非常多,如万恶又万能的eval,低调的Function,IE独占的execScrip
- 关于数据库的逻辑设计,是一个很广泛的问题。本文主要针对开发应用中遇到在MS SQL Server上进行表设计时,对表的主键设计应注意的问题以
- 先说一下背景和要求背景:由于业务或是其他不描述的原因的问题导致原有存储的数据发生变动,与现有数据有差别,但还是能勉强看明白数据内容。要求:实
- 1.现在有一个需求:我想在monitor应用中导入data文件夹下的apolos.py中的tes()函数并执行。打开monitor应用的视图
- 本文实例分析了php中get_meta_tags()、CURL与user-agent用法。分享给大家供大家参考。具体分析如下:get_met
- 检测这些圆,先找轮廓后通过轮廓点拟合椭圆import cv2import numpy as npimport matplotlib.pypl
- vue3.0 beta 版本已经发布有一阵子了,是时候上手体验一波了~注意,本文所有演示都是基于 vue3.0 beta 版本,不保证后续正
- 简介MySQL通过复制(Replication)实现存储系统的高可用。目前,MySQL支持的复制方式有:异步复制(Asynchronous
- (asp.net的应用). 在网上一搜有很多此类文章,但我需要将公司的复杂的,较大的web应用也以此方式操作,比较的头大。一般的文章建议将b
- 1、上下文管理的使用场景凡是要在代码块前后插入代码的场景,这点和装饰器类似。资源管理类:申请和回收,包括打开文件、网络连接、数据库连接等;权
- 本文实例讲述了ES6正则表达式和字符串正则方法。分享给大家供大家参考,具体如下:RegExp构造函数在ES5中,RegExp构造函数的参数有