Python基础数据结构入门必读指南

更多资料获取

作者主页:涛哥聊Python

个人网站:涛哥聊Python


大家好,我是涛哥,今天为大家分享的是Python中常见的数据结构。

1.数组

含义:数组是一种有序的数据结构,其中的元素可以按照索引来访问。数组的大小通常是固定的,一旦创建就不能更改。

基本操作:

# 创建数组
arr = [1, 2, 3, 4, 5]# 访问元素
element = arr[2]  # 获取第三个元素,索引从0开始# 修改元素
arr[1] = 6# 获取数组长度
length = len(arr)# 迭代数组
for item in arr:print(item)

2.列表

含义:列表是Python中内置的数据结构,它是一种有序的可变序列,可以存储不同类型的元素。

基本操作:

# 创建列表
my_list = [1, 2, 3, "hello"]# 添加元素
my_list.append(4)  # 添加元素到末尾
my_list.insert(2, 5)  # 在指定位置插入元素# 删除元素
my_list.remove(3)  # 移除指定元素
popped_item = my_list.pop()  # 移除并返回末尾元素# 获取列表长度
length = len(my_list)# 列表切片
subset = my_list[1:3]  # 获取索引1到2的子列表

3.栈

含义:栈是一种后进先出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。

基本操作:

# 创建空栈
stack = []# 入栈
stack.append(1)
stack.append(2)# 出栈
popped_item = stack.pop()# 获取栈顶元素
top_item = stack[-1]# 检查栈是否为空
is_empty = len(stack) == 0

4.队列

含义:队列是一种先进先出(FIFO)的数据结构,只能在队列的一端进行插入操作,另一端进行删除操作。

基本操作:

from collections import deque# 创建空队列
queue = deque()# 入队
queue.append(1)
queue.append(2)# 出队
popped_item = queue.popleft()# 获取队列头元素
front_item = queue[0]# 检查队列是否为空
is_empty = len(queue) == 0

5.链表

含义:链表是一种动态数据结构,由节点组成,每个节点包含一个数据元素和指向下一个节点的引用。链表可以是单链表、双链表或循环链表。

基本操作:

class ListNode:def __init__(self, value):self.value = valueself.next = None# 创建链表节点
node1 = ListNode(1)
node2 = ListNode(2)# 构建链表
node1.next = node2# 遍历链表
current = node1
while current:print(current.value)current = current.next

6.哈希表(字典)

含义:哈希表是一种键值对存储结构,它通过哈希函数将键映射到特定的存储位置,以实现快速的查找和插入操作。

基本操作:

# 创建空字典
my_dict = {}# 添加键值对
my_dict["name"] = "Alice"
my_dict["age"] = 30# 获取值
value = my_dict["name"]# 删除键值对
del my_dict["age"]# 检查键是否存在
key_exists = "name" in my_dict

7.树

含义:树是一种层次结构的数据结构,由节点组成,每个节点可以有零个或多个子节点。树常用于表示层次关系,例如文件系统、组织结构等。

基本操作:树的基本操作包括节点的插入、删除和遍历。

class TreeNode:def __init__(self, value):self.value = valueself.left = Noneself.right = None# 创建树节点
root = TreeNode(1)
node2 = TreeNode(2)
node3 = TreeNode(3)# 构建树结构
root.left = node2
root.right = node3# 遍历树(例如中序遍历)
def inorder_traversal(node):if node:inorder_traversal(node.left)print(node.value)inorder_traversal(node.right)inorder_traversal(root)

8.图

含义:图是一种表示对象之间关系的数据结构,由节点(顶点)和边组成。图可以是有向的或无向的,可以用于表示网络、社交关系等复杂结构。

基本操作:图的基本操作包括节点的添加、删除以及边的添加和删除。图的遍历操作可以有深度优先搜索(DFS)和广度优先搜索(BFS)等。

class Graph:def __init__(self):self.graph = {}def add_node(self, node):if node not in self.graph:self.graph[node] = []def add_edge(self, node1, node2):self.graph[node1].append(node2)self.graph[node2].append(node1)# 创建图
my_graph = Graph()
my_graph.add_node("A")
my_graph.add_node("B")
my_graph.add_edge("A", "B")# 图的遍历示例
def dfs(graph, start, visited=None):if visited is None:visited = set()visited.add(start)print(start, end=' ')for neighbor in graph[start]:if neighbor not in visited:dfs(graph, neighbor, visited)print("深度优先搜索结果:")
dfs(my_graph.graph, "A")

今天的分享就到这里了。


最后

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。
在这里插入图片描述

资料领取方式:

如果您渴望获取更多关于Python编程的宝贵资料,不妨访问我的个人主页。在那里,您将发现更多深入的Python教程、实用工具、项目示例以及专业建议等等。
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷粒商城篇章6 ---- P193-P210 ---- 异步线程池商品详情【分布式高级篇三】

目录 1. 异步 1.1 初始化线程的 4 种方式 1.1.1 继承 Thread 1.1.2 实现 Runnable 接口 1.1.3 实现 Callable 接口 FutureTask 1.1.4 线程池 1.1.5 以上 4 种方式总结: 1.2 线程池详解 1.2.1 初始化线程池的 2 种方式 1.2.1.1 使用 Executors 创建 1.2…

嵌入式养成计划-29-网络编程----TCP与UDP的基础模型

Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器 Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器 六十五、TCP与UDP的基础模型 1. socket 1.1 套接字概念 最早的套接字和共享内存,消息队列&#xff…

一篇文章带你学会Hadoop-3.3.4集群部署

目录 ​编辑 一、Hadoop集群部署 二、基础设施配置 2.1 设置网络 2.1.1 设置主机名称 2.1.2 设置hosts配置文件 2.1.3 关闭防火墙 2.1.4 关闭selinux 2.1.5 更换语言环境 2.1.6 更换时区 2.1.7 ssh免密 2.1.7.1 生成.ssh文件夹 2.1.7.2 进入文件夹 2.1.7.3 生成密码和…

MySQL数据库查缺补漏——基础篇

MySQL数据库查缺补漏-基础篇 基础篇 net start mysql80[服务名] net stop mysql80 create database pshdhx default charset utf8mb4; 为什么不使用utf8?因为其字符占用三个字节,有四个字节的字符,所有需要设置为utf8mb4; 数值类型&…

Windows10/11无线网卡WIFI驱动详细下载安装教程

官网下载WIFI驱动 《intel官网》 找到下载Windows 10 and Windows 11* WiFi package drivers 查看详细信息 下载对应操作系统的WIFI驱动 安装驱动,然后重启电脑即可。

【操作系统】聊聊文件系统是如何工作的

文件系统其实是操作系统中存储的核心、计算、网络。除了使用寄存器、内存可以临时存储数据,使用磁盘持久化存储更重要。 磁盘为系统提供了数据持久化功能。文件系统在磁盘的基础上,抽象出了一个管理文件的树状结构 索引节点和目录项 Linux中一切皆是文…

HarmonyOS应用开发—资源分类与访问

应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。 应用资源:借助资源文件能力,开发者在应用中自定义资源,自行管理这些资源在不同的设备或配置中的表…

7.4.4 【MySQL】索引字符串值的前缀

我们知道一个字符串其实是由若干个字符组成,如果我们在 MySQL 中使用 utf8 字符集去存储字符串的话,编码一个字符需要占用 1~3 个字节。假设我们的字符串很长,那存储一个字符串就需要占用很大的存储空间。在我们需要为这个字符串列建立索引时…

一键集成prometheus监控微服务接口平均响应时长

一、效果展示 二、环境准备 prometheus + grafana环境 参考博文:https://blog.csdn.net/luckywuxn/article/details/129475991 三、导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter

UE5学习笔记(1)——从源码开始编译安装UE5

目录 0. 前期准备1. Git bash here2. 克隆官方源码。3. 选择安装分支4. 运行Setup.bat&#xff0c;下载依赖文件5. 运行GenerateProjectFiles.bat生成工程文件6. 生成完成&#xff0c;找到UE5.sln/UE4.sln7. 大功告成 0. 前期准备 0.1 在windows的话&#xff0c;建议装一个Git…

Markdown(MD)——Typora Markdown安装教程(2023九月亲测可用!!!)

目录 一、简介 1.Markdown简介 2.Markdown特点 3.Typora简介 二、安装教程 1.下载安装包 2.解压到文件夹 3.安装 4.破解 ​编辑5.激活 三、Markdown常用语法 1.常用语法 2.用于编辑LaTex公式 四、其他编辑器 一、简介 1.Markdown简介 Markdown 是一种轻量级标记语…

WPF——Control与Template理解

文章目录 一、前言二、控件三、模板3.1 DataTemplate3.2 ControlTemplate3.3 ContentPresenter 四、结语 一、前言 最近又翻看了下刘铁猛的《深入浅出WPF》&#xff0c;发现对模板章节中的部分内容有了更深的体会&#xff0c;所以写篇文扯扯。 文章标题是Control与Template&a…

企业级数据仓库-理论知识

D3 AM 大数据中间件 Hive&#xff1a;将SQL转化成分布式Map/Reduce进行运算&#xff0c;也支持转换成Spark,需要单独安装Hive集群才能访问Spark,支持60%的SQL&#xff0c;延迟比较大。SparkSQL:属于Spark生态圈&#xff0c;Hive on Sqark。HBase: NoSQL,高并发读&#xff0c;适…

c语言进阶部分详解(指针进阶1)

大家好&#xff01;指针的初阶内容我已经写好&#xff0c;可移步至我的文章&#xff1a;c语言进阶部分详解&#xff08;指针初阶&#xff09;_总之就是非常唔姆的博客-CSDN博客 基本内容我便不再赘述&#xff0c;直接带大家进入进阶内容&#xff1a; 目录 一.字符指针 1.讲解…

Mac 安装软件各种报错解决方案

Mac 安装软件各种报错解决方案 文章目录 Mac 安装软件各种报错解决方案一. 打开允许“允许任何来源”二. 无法打开"xxx"&#xff0c;因为它不是从App Store下载三. 无法打开"xxx"&#xff0c;因为 Apple无法检查其是否包含恶意软件。四. "xxx"已…

【入门篇】ClickHouse最优秀的开源列式存储数据库

文章目录 一、什么是ClickHouse&#xff1f;OLAP场景的关键特征列式数据库更适合OLAP场景的原因输入/输出CPU 1.1 ClickHouse的定义与发展历程1.2 ClickHouse的版本介绍 二、ClickHouse的主要特性2.1 高性能的列式存储2.2 实时的分析查询2.3 高度可扩展性2.4 数据压缩2.5 SQL支…

C语言——通讯录管理系统

通讯录管理系统项目简介 功能说明 控制台黑窗口实现程序需要满足以下几个功能 程序开始运行时首先显示选择菜单界面&#xff0c;根据用户输入确定实现何种功能 程序界面 代码实现 多文件实现 和之前写的实战项目类似&#xff0c;这里同样采用多文件实现的方式 多文件写代码…

各种电机驱动原理

步进电机 步进电机参考资料 野火官方文档 步进电机驱动原理 上面参考文档中有的内容就不写了&#xff0c;写一下我自己的总结吧。 说明&#xff1a; 电机驱动器输入信号有电机转动方向信号DIR&#xff0c;电机转速信号PWM&#xff0c;电机使能信号EN&#xff1b;电机驱动器…

S7-1200PLC和LED电子看板通信(TCP/IP)

S7-200SMART PLC和LED电子看板通信应用,请查看下面文章链接: SMART 200 PLC UDP通讯应用LED看板_RXXW_Dor的博客-CSDN博客开放式用户通信 (OUC) 库:数据解析:https://rxxw-control.blog.csdn.net/article/details/121424897这篇博客我们主要介绍S7-1200PLC和LED电子看板通…

servlet 引用src目录下子目录的class文件方法

1、MyServlet class文件所处的目录结构如下&#xff1a; 2、如果在url里直接引用是不行的&#xff0c;http://localhost:9092/GetRequest_Web_exploded/MyServlet 3、需要在web.xml映射后才行&#xff1a; MyServlet com.example.MyServlet <servlet-mapping><ser…