原来的数据都是散着的,我让他按照excel这种格式记录好给我,其实就是将非结构化的数据结构化,便于我后期灵活处理,比如导入数据库或者转换成json的都可以。...当时我先将数据结构化到json文件中了,主要做了图片的地址处理,后面的案例也是用的这个数据,后期不管你是要做卡片展示或者什么都非常方便。...想的是将文本数据结构化导出,放到数据库中去,以后直接从数据库里面随意取,如果都打上知识点,难度等标签,那么价值会更大。这个属于内容建设的问题了。 首先我将网页的内容导出md格式。...然后观察md的格式,通过# 的位置对文档进行区域切分,分出所有题目,接着从每道题里面抽出题目,选项,解析以及答案。 最后保存到json文件中,即完成文档数据到结构化数据的转换。...经过这几个案例的折腾,我开始发现很多内容其实都可以将其结构化保存下来,这样以后你要展示,只要从数据库中提取数据,改改外壳,就可以以不同的形式展示,同时原始核心数据又得以保存下来。
大家好,又见面了,我是你们的朋友全栈君。 冯.诺依曼结构,又称为普林斯顿结构。是一种经典的体系结构,有CPU,总线,外部存储器组成。...这种体系结构采用程序代码存储器与数据存储器合并在同一存储器里,但程序代码存储器地址与数据存储器地址分别指向不同的物理地址。程序指令宽度与数据宽度一样。数据总线和地址总线共用。...但是随着CPU设计的发展,pipeline的增加,指令和数据的互斥读取很影响CPU指令执行的scale程度。...后来,哈佛大学提出一种的新的结构,这种结构采用数据存储器与程序代码存储器分开,各自有自己的数据总线与地址总线。但这是需要CPU提供大量的数据线,因而很少使用哈佛结构作为CPU外部构架来使用。...但是对于CPU内部,通过使用不同的数据和指令cache,可以有效的提高指令执行的效率,因而目前大部分计算机体系都是CPU内部的哈弗结构+CPU外部的风诺伊曼的结构。
先前的笔记中介绍过光电探测器,这一篇主要就光电二极管(Photodiode)的结构类型展开更详细地调研。光电二极管的基本结构是PN结,但为了获得更好的性能参数,人们对PN结结构做了一些设计与改进。...3)MSM型 Metal-Semiconductor-Metal, 简称MSM, 该类型的光电二极管并没有PN结结构,而是由两个背对背的肖特基二极管构成,示意图如下, ?...MSM型PD的优点是结构简单,加工方便,寄生电容低,频率特性好。但是MSM型PD的响应度不如PIN型,因为光只能在金属电极以外的区域被吸收。金属电极结构的正负极相互交错,如下图所示, ?...前面几种类型的PD, 光都是从顶层垂直入射的,存在着转换效率与频率响应之间的trade-off。为了解决这一问题,人们提出了侧面入射型PD的想法,也就是基于波导结构的PD, 示意图如下, ?...芯片上其他区域器件的光信号通过底层波导传输到PD区域,信号通过消逝波耦合逐渐被PD所吸收。 以上就是几种常见的PD结构介绍,这些结构还需结合具体的增益介质材料,形成满足要求的产品。
数据结构类型(内存篇)超全结构体,联合,枚举内存解释(适用c语言入门) 一.结构体的内存 内存对齐 规则: 1.结构体的第一个数据成员存放的地址为结构体变量偏移量为 0 的地址处. 2.其他起始地址为该类型变量所占内存的整数倍...,如果不足部分用数据填充到所占内存的整数倍 3.结构体所占总内存为该结构体的成员中基本数据类型占字节数最大的整数倍 (见图解1-1) #include struct str1 { // ??...规则: 1.大小必须足够容纳最宽的成员 2.大小能够被它所包含的所有的基本数据类型的大小整除 #include union MyUnion1{ char s[9]; // 9 byte...标准C语言描述没有明确规定枚举类型占用空间的大小,表示:“枚举类型的尺寸是以能够容纳最大枚举子值的整数的尺寸”,同时标准中也说明了: “枚举类型中的枚举子的值必须 能够 用一个int类型表述.”...,但是发现子值的输出并非正确数值输出,依旧溢出; 此处可能与 int 类型的大小有关: (关于 int 类型)其大小为计算机的字长,与cpu寄存器位数相关 一般情况:32位计算机为4字节 64位计算机为
像MySQL 这样的关系型数据库,表的结构比较复杂,会包含很多字段,可以通过SQL语句,来实现非常复杂的查询需求。 而Redis中只包含“键”和“值”两部分,只能通过“键”来查询“值"。...Redis中,键的数据类型是字符串,值的数据类型有很多,常用的分别是字符串、列表、字典、集合、有序集合。 “字符串(string)"这种数据类型非常简单,对应到数据结构里,就是字符串。 2....具体需要同时满足下面两个条件: 列表中保存的单个数据(有可能是字符串类型的)小于64字节; 列表中数据个数少于512个。 压缩列表,并不是基础数据结构,是Redis自己设计的一种数据存储结构。...支持不同类型数据的存储。因为数据存储在一片连续的内存空间,通过键来获取值为列表类型的数据,读取的效率也非常高。...同样,当存储数据量比较小的情况下,Redis 才使用压缩列表来实现字典类型。需要满足两个条件: 字典中保存的键和值的大小都要小于64字节; 字典中键值对个数要小于512个。
一、数据结构概念 数据结构 是 计算机内存 中 组织 和 存储 数据 的方式 , 有以下两部分组成 : 逻辑结构 : 数据的存放形式 ; 操作 : 数据如何操作 , 如 : 排序 , 查询 , 删除 ,...增加 , 修改 ; 数据结构 是为了 高效访问 内存中的数据 ; 数据结构 定义了 内存中的 数据元素 之间的关系 以及 对这些数据元素的操作 ; 二、数据结构中常见的存储结构 常见的数据结构包括 :...数组(Array): 线性数据结构,存储 相同数据类型的元素,通过索引下标访问数据中的元素。...二、数据结构中常见的逻辑结构 数据结构 的 逻辑结构 类型 : 集合结构 : Set Structure , 集合结构中的 数据元素之间没有任何特定的关系, 每个元素都是独立的,没有顺序和层次关系...线性结构和非线性结构的组合: 在实际应用中,线性结构和非线性结构可以组合使用,形成更复杂的数据结构。例如,树可以用来表示文件系统的目录结构,而每个目录下又可以使用线性表来存储文件。
个人主页:修修修也 所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 数据类型 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称....结构类型:由若干个类型组合而成,是可以再分解的.并且它的成分可以是非结构的,也可以是结构的.(如:整型数组是由若干个整形数据组成的)....,但由于其定义的数学特性相同,在计算机编程者看来,它们都是相同的.因此,"抽象"的意义在于数据类型的数学抽象特性...."跑"的操作.这都是根据实际情况来设计的....相关文章推荐 【数据结构】什么是数据结构? 【数据结构】基本概念和术语 【数据结构】逻辑结构与物理结构 【数据结构】抽象数据类型 【数据结构】什么是算法
什么是数据结构 数据结构是互相之间存在一种或多种特定关系的数据元素的集合,此解释来自于《大话数据结构》。小白表示这都什么玩意啊。...简单的来说数据结构就是数据之间的一种关系,而这种关系是计算机之中特定的一种。...数据结构的分类 数据结构可以分为两类,逻辑结构和物理结构,而逻辑结构实际上就是数据对象和数据之间的一种关系,逻辑结构又可以分为集合结构、线性结构、树形结构、图形结构。...2.2 物理结构 物理结构实际上就是在内存或硬盘上的存储结构,好比一个文件当我们存储在硬盘或者磁盘上时实际上他存放的是文件的二进制数据,而物理结构反应的就是逻辑结构在计算机上存储的一种形式,物理结构可分为顺序存储结构和链式存储结构...顺序存储结构 顺序存储结构顾名思义就是按照顺序存储的一种结构,就是把我们的数据元素存在一个一个连续的存储地址单元,就好比数组一样,而数组下标中存放的值就类似于数据元素。 ?
数据类型是编程语言中的一个重要概念,它定义了数据的类型和提供了特定的操作和方法。在 python 中,数据类型的作用是将不同类型的数据进行分类和定义,例如数字、字符串、列表、元组、集合、字典等。...(List)是最常用的数据结构之一,它是一个有序的、可变的、元素可以重复的集合。...(Dictionary)是一种内置数据结构,它是一种可变的容器模型,可以存储任意类型的对象,不仅如此,字典的一个重要特性是它可以通过任意不可变对象通常是字符串或数字来作为键key来存储和检索值value...rows_data[row["date"]].append(row)>>> print(rows_data)2.5 元组类型元组是一种不可变的有序数据结构,由多个元素组成,每个元素可以是不同的数据类型,...print(*args)1 2 34 5 62.6 集合类型集合是一种无序的、不重复的数据结构。集合中的元素必须是可哈希的,因此支持数字、字符串、元组等不可变类型,不支持列表、字典等可变类型。
根据逻辑关系,可以简单划分为四种基本数据结构类型,分别为集合结构,线性结构,树状结构,图状结构。...如图:编辑图1逻辑关系分类图集合结构:最简单的逻辑结构,数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。需要注意在同一集合下的数据是不可重复的。...这些数据的整体就是一个集合,因为数据项之间不存在任何关系,没有相同或者相等的数据项。即数据没有重复的。...线性结构:数据元素之间存在着“一对一”的线性关系的数据结构。如(a0,a1,a2,.....,an),a0为第一个元素,an为最后一个元素。...可形象化为下图:编辑图5排队买票编辑图6排队线性结构化树性结构:数据元素之间存在一对多的层次关系,即在线性的基础进行了复杂化,使问题更加复杂化,即元素之间不再是单纯的一对一。而是一个一对多的关系。
hash类型 hash⽤于存储对象,对象的结构为属性、值 值的类型为string 增加、修改 设置单个属性 hset key field value 例1:设置键 user的属性name为Aron.li...例2:设置键user2的属性name为Aron.li、属性age为30 127.0.0.1:6379[1]> hmset user2 name Aron.li age 30 OK 127.0.0.1:6379...获取键user2属性'name'的值 127.0.0.1:6379[1]> hget user2 name "Aron.li" 127.0.0.1:6379[1]> 获取多个属性的值 hmget key...]> 获取所有属性的值 hvals key 例6:获取键user2所有属性的值 127.0.0.1:6379[1]> hvals user2 1) "Aron.li" 2) "30" 127.0.0.1...:6379[1]> 删除 删除整个hash键及值,使⽤del命令 删除属性,属性对应的值会被⼀起删除 hdel key field1 field2 ...
数据类型是编程语言中的一个重要概念,它定义了数据的类型和提供了特定的操作和方法。在 python 中,数据类型的作用是将不同类型的数据进行分类和定义,例如数字、字符串、列表、元组、集合、字典等。...列表(List)是最常用的数据结构之一,它是一个有序的、可变的、元素可以重复的集合。...字典(Dictionary)是一种内置数据结构,它是一种可变的容器模型,可以存储任意类型的对象,不仅如此,字典的一个重要特性是它可以通过任意不可变对象通常是字符串或数字来作为键key来存储和检索值value...rows_data[row["date"]].append(row) >>> print(rows_data) 2.5 元组类型 元组是一种不可变的有序数据结构,由多个元素组成,每个元素可以是不同的数据类型...print(*args) 1 2 3 4 5 6 2.6 集合类型 集合是一种无序的、不重复的数据结构。集合中的元素必须是可哈希的,因此支持数字、字符串、元组等不可变类型,不支持列表、字典等可变类型。
list类型 列表的元素类型为string 按照插⼊顺序排序 增加 在左侧插⼊数据 lpush key value1 value2 ......例1:从键为'a1'的列表左侧加⼊数据a 、 b 、c lpush a1 a b c 127.0.0.1:6379[1]> LPUSH a1 a b c (integer) 3 127.0.0.1...例2:从键为'a1'的列表右侧加⼊数据0 1 rpush a1 0 1 127.0.0.1:6379[1]> rpush a1 0 1 (integer) 11 127.0.0.1:6379[1]...) "a" 3) "b" 4) "a" 5) "b" 6) "a" 127.0.0.1:6379[1]> 例6.2:从'a2'列表右侧开始删除2个'b' lrem a2 -2 b # 删除之前的数据...b" 2) "a" 3) "b" 4) "a" 5) "b" 6) "a" # 从尾部开始删除两个b 127.0.0.1:6379[1]> LREM a2 -2 b (integer) 2 # 删除后的数据
尽管如此,它也支持通过持久化机制将内存中的数据保存在硬盘中。...而如果我们严格按照数组的要求,每个数据的大小相同,那么我们不需要存储每个数据的长度,但这样会造成空间的浪费,如下图: ?...压缩列表这样存储结构,一方面节省内存,一方面允许不同类洗的数据的存储,比数组灵活。因为数据仍然存储在一片连续的内存空间中,仍然按照键来获取数据,因此仍然和数据一样具有随机存取的特性。...具体而言,和List的条件大致相当: 字典中保存的键和值的大小都小于64字节。 字典中的键值对数目小于512。 不能满足上述条件,即存储的数据量较大时,采用散列表来实现字典类型。...,采用不同的数据结构来实现,主要是出于时间和空间的考虑。
插入排序默认第一个位置(下标为0)的元素是有序的,需要将在[2…n-1]这个区间中剩下的n-1个元素在有序的位置区间寻找一个合适的位置进行插入。...(1)直接插入排序 例如:初始状态闭区间[0…i-1]这个区间中的元素是有序的,排序的开始需要在[0…i-1]这个闭区间中寻找索引为i的元素合适的插入位置。...int v = a[i];//记录当前需要被排序元素的值,因为之后可能会被覆盖 //因为比较的过程可能有元素的移动 需要处理边界 j>=1 a[j] = a[j-1]此时就不会发生越界的错误 for...void binInsertSort(int *a, int n) { for(int i=1; i<n; ++i) { //二分的两个边界 ,注意有序的右边界的索引是i-1 待排序元素的索引是...一般选取希尔排序的增量d=3。希尔排序的时间复杂约为O(n^1.3),但是希尔排序不是一种稳定的排序方法。
这是 月小水长 的第 122 篇原创干货 距离上一篇 pandas 系列教程:数据分析利器 pandas 系列教程(四):对比 sql 学 pandas 发布已经过去大半年,近来才记起以前开了这样一个坑...大家可能经常会有这样的需求,有很多结构相同的 xlsx 或者 csv 文件,需要合并成一个总文件,并且在总文件中需要保存原来的子文件名,一个例子就是合并一个人所有微博下的所有评论,每条微博的所有评论对应一个...csv 文件,文件名就是该条微博的 id,合并之后新增一列保存微博 id,这样查看总文件的时候能直观看到某一条评论属于哪一条微博。...只要某文件夹下所有的 csv 文件结构相同,在文件夹路径运行以下代码就能自动合并,输出结果在 all.csv ,结果 csv 在原有的 csv 结构上新增一列 origin_file_name,值为原来的...csv 文件名,保证了没有信息的衰减。
选择排序的核心是每一趟排序中查找最小值或者最大值的索引,然后与边界的位置进行交换。例如当前待排序的元素值为a[i],设置最小值所对应的索引为minIndex,初始值就为i。...这样一次循环后,minIndex的值可能会变,也可能不变,只有当变化的时候我们交换一下即可。下面看一下常见的选择类型的排序。..., a[minIndex]); swap(a[right], a[maxIndex]); left ++, right --;//缩小范围 } } (3)堆排序 堆排序在底层中使用了堆这样的数据结构...堆同时是一完全二叉树的的逻辑结构,堆很方便的可以使用数组来实现,因此是一种线性的存储结构,方便编程,主要利用到是完全二叉树的性质: 1.若任意节点的索引为j,若其左右孩子都存在,则它们的索引分别是2 *...Heap{ private: int cnt;//当前堆中的节点个数 int capacity;//堆的容量 T *data;//存放数据的线性结构 void shiftDown(int
在做薪酬的数据分析过程中,我们都会用数据透视表来对薪酬的结构进行分析,我们今天就来讲讲如何通数据透视来对薪酬的结构做分析。 部门薪酬幅度 ?...上面是各个部门的薪资的最高值和最低的公司,我们希望通过数据图表的分析来判断,那个部门的薪资幅度最大,并且与平均值做对比,上面的是个幅度的薪资表,是在原始的数据表上,通过数据透视出来的。...我们会通过组合图来进行薪资幅度的图表的设计,如下图:这个图表设计的关键就是两个数据的叠加,然后把叠加数据的颜色填充改成和背景一样的颜色。 ?...2、各个部门 不同区间的新词占比 这个数据透视表,是对工资区间做了个数据的分类,然后对各个部门的薪资人数最成分的对比,来分析每个部门在每个区间的薪资占比。 ?...数据透视表是数据分析中比较重要的数据分析的方法,以数据透视表为基础衍生出数据透视图,数据仪表盘,PB等数据分析工具,可以提升数据分析的效率。
private int Num;//栈中元素个数 //内部类,定义结点 private class Node { private E data;//存储元素数据...null); } //判断栈是否为空 public boolean isEmpty() { return Num == 0; } //获取栈元素的个数...null if (fristnode == null) { return null; } else { //让首结点指向的第一个结点...n = n.next; return n.data; } } } class Test1 { //这是一个main方法,是程序的入口
结构体类型数据在函数之间的传递 函数之间不仅可以使用基本数据类型及其数组参数进行数据传递,也可以使用结构体类 型及其数组参数进行数据传递,传递方式与基本数据类型参数是相同的。...结构体变量在函数之间传递数据 使用结构体类型的変量作为参数进行函数之间的数据传递时,注意以下问题 (1)主调函数的实参和被调函数的形参是相同结构体类型声明的变量。...(2)实参结构体变量向形参结构体变量传值时,依然是单向值传递,实参和形参变量分配 不同的内存空间,被调函数运行期间对形参结构体变量进行的修改不影响实参结构体变量。...(3)结构体变量也可以作为函数的返回值,使用 return语句从被调函数返回一个结构体变 量的值。 例:定义结构体类型表示圆,定义函数计算一个圆的面积并返回结构体变量。...,main函数中的实参c1把它的值传递给函数getarea的形参c,函数运行过程中计算并修改了c的成员area的值。
领取专属 10元无门槛券
手把手带您无忧上云