Python的各种解析操作,和数学概念中的解析有何联系?

python中的解析

Python支持各种解析(comprehension)操作,比如列表解析、集合解析、元组解析、字典解析。它们根据某些元素来创建(推导)出一个新的列表、集合、元组、字典等。所以有的地方也称为推导,比如列表推导、集合推导等。

下面是一个列表解析的示例:

1 >>> [ i*2 for i in range(10) if i % 2 == 0 ]
2 [0, 4, 8, 12, 16]

这里是列表解析,因为使用的中括号[ xxxx ],它表示根据条件推导出一个新的列表。Python中几种内置类型的解析规则为:

  • 如果使用的是中括号,表示列表解析
  • 如果使用的是大括号,表示集合解析
  • 如果使用的是大括号,且里面的元素是key:value模式,表示字典解析

注意:如果使用的是括号,表示的是生成器表达式,而不是解析。

例如:

1 # 集合解析
2 >>> { i*2 for i in "abcd"}
3 {‘aa‘, ‘cc‘, ‘dd‘, ‘bb‘}
4
5 # 字典解析
6 >>> { k:v for k,v in zip(("one","two","three"),(1,2,3)) }
7 {‘one‘: 1, ‘two‘: 2, ‘three‘: 3}
8 >>> { k: k*2 for k in "abcd" }
9 {‘a‘: ‘aa‘, ‘b‘: ‘bb‘, ‘c‘: ‘cc‘, ‘d‘: ‘dd‘}
在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,×××
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容

当然,Python中还有其它解析模式。

数学概念中的解析

计算机语言中的解析来自于数学概念中的集合描述(对应于集合解析)。如下图:

将此与下面的列表解析进行对应:

[ i * 2 for i in range(10) if i % 2 == 0 ]

其中:

  • x ∈ N表示的是装元素的容器,这个容器里的元素是解析时被迭代的对象
  • 这对应于列表解析中的range(10),对于Python来说,只要是可迭代的数据对象,都可以作为元素的提供容器
  • x是变量,是容器中的元素
  • 对应于列表解析中的i
  • x2 > 3表示的是谓词,是可选的条件判断式,用来筛选解析过程中的符合条件的元素
  • 这对应于列表解析中的if i % 2 == 0,注意,谓词部分是可选的
  • 2 * x表示的是外部表达式,用来生成新的列表/集合/字典/元组中的元素
  • 对应于列表解析中的i * 2
  • {}意味着外部表达式的元素所存放的容器是集合容器
  • 对应于列表解析中的[],表示新生成的元素是列表中的元素

觉得文章还可以的话不妨收藏起来慢慢看,有任何意见或者看法欢迎大家评论!

原文地址:https://blog.51cto.com/14568144/2444883

时间: 2024-11-06 07:31:24

Python的各种解析操作,和数学概念中的解析有何联系?的相关文章

为什么数学概念中,将凸起的函数称为凹函数?

中国大陆数学界某些机构关于函数凹凸性定义和另一些机构不同. 那么我们来讲凸函数(convex function)为什么叫做是凸(convex)的:这是因为凸函数与凸集(convex set)有联系,而凸集的定义没有争议. 1. 凸函数与凸集通过 sublevel sets 这个概念联系起来. 首先来看一个函数的 sublevel sets.对于函数来说,它的-sublevel set 是这样定义的:也就是在函数定义域内,对应函数值小于的自变量的取值构成的集合. 联系1:对于任意来说,一个凸函数的

C++实现对数学基本运算表达式的解析

代码地址如下:<br>http://www.demodashi.com/demo/11078.html 前段时间在LeetCode上刷题,遇到了很多涉及对字符串进行解析的题目.可能是出于这个原因,最近迷恋上了字符串的解析问题.数学基本运算表达式的解析就涉及这类问题.所谓数学基本运算表达式的解析就是指给定一个表达式字符串,如1 + 1,3 * 9,对这个字符串进行解析,从而得到这个表达式的运算结果.(数学基本运算表达式也就是只用加减乘除进行计算的数学表达式) 其实站在我的角度来看,我觉得对数学基

Math concepts / 数学概念

链接网址:Math concepts / 数学概念 – https://www.codelast.com/math-concepts-%e6%95%b0%e5%ad%a6%e6%a6%82%e5%bf%b5/ 这里记录了我在学习过程中遇到或总结的一些基础数学概念,保存于此,与需要者共享. Following are some basic math concepts I read or summarized in my learning process, I wrote them down her

【python基础】文件操作

首先要明确的就是python对文件的操作实质上是需要调配两种资源: 1.宿主机的系统资源,比如Linux下的limit文件句柄数 2.python内存资源 两种使用方法: 方式一: f=open('aaa.txt','rt',encoding='utf8') f.read() f.close ##释放系统资源,向系统发送指令告知,程序结束,请求系统关闭文件 方式二: with open('aaa.txt','rt',encoding='utf8') as f: f.read() ps:方式二借助

python之文件的操作

一,文件操作基本流程. 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统.操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来. 有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件

python的基础04 操作列表

4.1 遍历整个列表 magicians = ['alice','david','carolina'] # 定义了一个列表 for magician in magicians: # 定义了一个for循环 '''这行代码让python从列表migicians中取出一个值,并将这个值存储在了变量magician里面''' print(magician) # python会打印出存储在变量magician中的每一个值 alice david carolina 4.1.1 深入地研究循环 magicia

Python实现XML的操作

本文从以下两个方面, 用Python实现XML的操作: 一. minidom写入XML示例1 二. minidom写入XML示例2 三. ElementTree写入/修改示例 四. ElementTree读取/修改/写入示例 一. minidom写入XML示例1 1.引入包 import xml.dom.minidom 2.write XML方法 writexml(writer, indent, addindent, newl, encoding) writer是文件对象 indent是每个ta

Python面向对象之文件操作

文件的概念 文件的概念和作用 计算机的文件,就是存储在某种长期存储设备上的一段数据:长期存储设备包括:U盘,硬盘,移动硬盘,光盘,等: 文件的作用:将数据长期保存,在需要的时候使用: 文件的存储方式 在计算机中,文件是以二进制的形式保存在磁盘上的: 文本文件和二进制文件 文本文件 可以用文本编辑软件查看: 本质上还是二进制文件: 例如:python源文件. 二进制文件 保存的文件不是直接给人阅读的,而是提供给其他软件使用的: 二进制文件不能会用文本编辑软件查看: 例如:图片文件,音频文件等 文件

Python 3 mysql 库操作

Python 3 mysql 库操作 一.基础相关知识 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list,相当于一个具体的文件 记录:1 刘海龙 324245234 22,相当于文件中的一行内容 二.SQL语言简介 SQL(Structured Query Language 即结构化查询语言) SQL语言主要用于存取数据.查询