首页 > 编程语言 >python系列教程213

python系列教程213

时间:2023-08-22 13:04:07浏览次数:57  
标签:map 教程 213 python res 列表 ord 解析 表达式

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

我们已经学习了map和filter这样的函数式编程工具,它们会将操作映射到序列和集合结果中。由于这是Python编程中的一种常见任务,所以Python最终创造了一种新的表达式——列表解析。简而言之,列表解析会把任意一个表达式而不是一个函数应用于一个迭代对象中的元素。

让我们举一个例子来帮助大家理解吧。Python的内置ord函数会返回一个单个字符的ASCII整数编码(chr内置函数是它的逆过程,它将一个ASCII整数编码转换为字符):

>>>ord('s')

115

现在,假设我们希望收集整个字符串中的所有字符的ASCII编码。我们可以使用一个简单的for循环,并将结果附加在列表中:

>>>res = []

>>>for x in 'spam':

...    res.append(ord(x))

...

>>>res

[115,112,97,109]

然而,现在我们知道了map,我们能够使用一个单个的函数调用,而不必关心代码中列表的结构,从而实现起来更简单:

>>>res = list(map(ord,'spam'))        # Apply function to sequence

>>>res

[115,112,97,109]

我们也能够通过列表解析表达式得到相同的结果——map把一个函数映射遍一个序列,列表解析把一个表达式映射遍一个序列:

>>>res = [ord(x) for x in 'spam']  # Apply expression to sequence

>>>res

[115,112,97,109]

列表解析在一个序列的值上应用一个任意表达式,将其结果收集到一个新的列表中并返回。从语法上来说,列表解析是由方括号封装起来的(为了提醒你它们构造了一个列表)。它的简单形式是在方括号中编写一个表达式,在后边跟随着的看起来就像一个for循环的头部一样的语句。

上一个例子的效果与手动进行for循环和map调用相比,没有什么不同。然而,列表解析更方便。

>>>[x ** 2 for x in range(10)]

[0,1,4,9,16,25,36,49,64,81]

上面收集了从0~9数字的平方。下面是等效的map代码:

>>>list(map((lambda x: x ** 2),range(10)))

[0,1,4,9,16,25,36,49,64,81]

标签:map,教程,213,python,res,列表,ord,解析,表达式
From: https://blog.51cto.com/captainbed/7188315

相关文章

  • 无涯教程-PHP Installation on Windows NT/2000/XP with Apache函数
    要在Windows上使用PHP5安装Apache,请执行以下步骤。如果您的PHP和Apache版本不同,请相应注意。从www.apache.org/dist/httpd/binaries/win32下载Apache服务器。您需要具有no_src.msi扩展名的当前稳定发行版。双击安装程序文件进行安装;C:\ProgramFiles是一个常见的位置。安装......
  • python @property装饰器实现原理
    @property装饰器可以使一个对象的方法变成属性访问,比较方便,那么它是如何实现的呢?下面是一个自己动手实现的例子:classMyProperty:def__init__(self,fget=None,fset=None):self.fget=fgetself.fset=fsetdef__get__(self,instance,o......
  • python的几种常用用法(掌握)
    Python常用的自动化小脚本,必须收藏!原创 鬼仔 码农鬼仔 2023-08-1918:00 发表于广东前言大家好,我是鬼仔。今天给大家分享几个python常用的自动化小脚本。无论是日常生活,还是工作开发,这几个脚本都常常会用到!1. List转JSON、String转JSON2. 时间格式转换3.......
  • python 多线程
    在python中,I/O密集型任务可以用多线程的方式来实现(threading库);然而,对于计算密集型任务,由于python中全局锁GIL的存在,多线程并不能起到一个加速的作用。所以此时,一般使用多进程的方式实现(multiprocessing库)。多线程threading:一个人有与异性聊天和看剧两件事要做。单线程的她可......
  • Lnton羚通云算力平台如何在OpenCV-Python 中,来进行图像算术运算?
    在OpenCV-Python中,可以使用函数cv2.add()、cv2.subtract()、cv2.multiply()和cv2.divide()来进行图像算术运算。这些函数接受两个输入图像,并对其进行逐像素的运算。1.图像加法:OpenCV 是饱和运算(大于255算255),NumPy 是模运算(大于255会与256进行求模)。importnumpyasnpimpo......
  • Python中字符串截取
    #截取字符串时,如果位数不够,Python不会报错,而是返回空字符串#这是因为Python中的字符串是不可变的,所以当我们尝试访问一个不存在的索引时,Python会返回空字符串而不是报错#示例代码s='hello'print(s[10:15])#返回空字符串'' #Python中的字符串是不可变的,这意味着一旦......
  • vscode 配置 python black 格式化单行长度
    配置信息vscode版本1.81.1vscode安装BlackFormatter插件问题默认Black格式化之后单行长度太短,需要通过修改配置文件解决。方法Ctrl+Shift+p,打开settings.json,添加一个black-formatter.args配置项,如下所示:"black-formatter.args":["--line-le......
  • 一行命令即可启动 Walrus丨入门教程
    应用管理平台Walrus已正式开源,本文将介绍如何上手安装Walrus以及如何借助Walrus进行应用部署。 ⭐开源地址:https://github.com/seal-io/walrus 部署Walrus首先,您需要准备:资源不少于4CPU,8Gi内存的Linux服务器。至少50GB的空余磁盘空间。安装Docker服务......
  • python 外部文件调用Django程序操作model
    importosimportdjango#设置Django配置文件文件夹所在位置,并进行系统环境配置os.environ.setdefault("DJANGO_SETTINGS_MODULE","项目配置文件夹名称.settings")#加载Django模块,初始化Django环境django.setup()#导入需要调用的modelfrom应用名称.modelsimport......
  • bh002- Blazor hybrid / Maui 保存设置快速教程
    1.建立工程bh002_ORM源码2.添加nuget包<PackageReferenceInclude="BootstrapBlazor.WebAPI"Version="7.*"/><PackageReferenceInclude="FreeSql"Version="*"/><PackageReferenceInclude="FreeSql.Provid......