Skip to content

Latest commit

 

History

History
45 lines (40 loc) · 4.84 KB

基础知识笔记.md

File metadata and controls

45 lines (40 loc) · 4.84 KB

基础数据存储类型与数据结构的概念

从基础的物理存储来说,存储方式只分为两种:1.连续存储(数组【array】),2. 链式存储(链表【linked list】),所有数据结构都是基于上述存储方式或二者的组合实现的。

  1. 基础数据存储类型

    • 有序存储:列表(List)/元组(Tuple) 二者都属于连续存储(数组【array】)
      • 列表/元组/范围都可以看作是基础的存储容器。它们是Python语言内置的序列类型,用于存储多个元素。列表是可变的,元组是不可变的。可以把它们想象成能够容纳各种数据的“盒子”,元素在其中按照一定的顺序排列,并且可以通过索引来访问。
      • List(列表):[0,1,2,3,4]
      • Tuple(元组):(0,1,2,3,4)
    • 列表和元组的区别:
      • 列表是可变的,而元组是不可变的。这意味着可以对列表进行添加、删除、修改等操作,但不能对元组进行这些操作。
      • 列表使用方括号([])表示,而元组使用圆括号(())表示。
    • 补充:范围range()(有序序列)
      • 范围是一种特殊的序列类型,用于生成一系列连续的整数。它通常用于循环中,用于迭代一定范围内的数字。
      • 范围的语法是range(start, stop, step),其中start是起始值(包含在范围内),stop是结束值(不包含在范围内),step是步长(默认为1)。例如,range(0, 5)会生成一个包含0到4的整数序列。但它不等于[0,1,2,3,4],而是在Python中作为基础数据存储类型独立存在:range(0,5)=range(5)
  2. 基于基础类型构建的数据结构

    • 链表(Linked List)
      • 链表可以基于节点(Node)来构建,每个节点可以包含数据和指向下一个节点的引用。在Python中虽然没有像其他语言那样有原生的链表类型,但可以通过自定义类,利用列表或者其他基础存储类型来模拟链表的结构。例如,可以定义一个Node类,其中包含数据和下一个节点的引用,然后通过这些节点组合成链表。
    • 栈(Stack)和队列(Queue)
      • 栈和队列可以使用列表来简单地实现。例如,栈可以将列表的一端作为栈顶,利用列表的append(入栈)和pop(出栈)操作来实现栈的功能;队列可以利用列表或者collections模块中的deque来实现,通过append(入队)和popleft(出队)操作来模拟队列的先进先出特性。它们是在基础的存储类型上,通过定义特定的操作规则而形成的数据结构。
    • 哈希表(在Python中主要是字典 - Dictionary)
      • 字典是Python内置的数据结构,它是基于哈希表实现的。从底层存储角度看,它利用了哈希函数将键(key)映射到特定的存储位置来存储值(value)。虽然在使用时不需要关心底层实现,但实际上它是一种复杂的数据结构,通过巧妙地利用哈希函数和存储机制来实现快速的键 - 值查找、插入和删除操作。
    • 树(Tree)和堆(Heap)
      • 树和堆在Python中通常需要通过自定义类来构建。以树为例,可以定义一个TreeNode类,包含数据、左子节点和右子节点等属性,然后通过这些节点的组合构建树的结构。堆也是一种特殊的树结构,在构建过程中会遵循特定的规则(如最小堆或最大堆的节点大小关系),这些数据结构是在基础存储类型基础上,通过更复杂的组织方式和规则构建起来的。
    • 图(Graph)
      • 图通常是由顶点(Vertex)和边(Edge)组成。在Python中,构建图结构一般需要借助第三方库或者自定义类。例如,通过定义Vertex类和Edge类,来表示顶点和边的属性,以及它们之间的连接关系,这是一种比较复杂的数据结构,用于表示各种复杂的网络关系。

简单数据类型

  1. 整数(Integer)
    • 整数是最基本的数字类型,用于表示整数值。在Python中,整数可以是正数、负数或零。
  2. 浮点数(Float)
    • 浮点数用于表示带有小数部分的数值。在Python中,浮点数可以是正数、负数或零,并且可以包含小数点。
  3. 字符串(String)
    • 字符串是由字符组成的序列,用于表示文本数据。在Python中,字符串可以使用单引号(')或双引号(")括起来。
  4. 布尔值(Boolean)
    • 布尔值表示逻辑上的真(True)或假(False)。在Python中,布尔值只有两个取值:True和False。
  5. 空值(None)
    • 空值表示没有值或空。在Python中,空值用关键字None表示。

alt text