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.rhkb.cn/news/136393.html

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

相关文章

30天入门Python(基础篇)——第2天:Python安装(保姆级)与IDE的认识与选择+详细安装教程

文章目录 专栏导读上一节课回顾1、Python解释器的安装查看各个版本的Python解释器①、ok,双击安装②、这里我们选择【自定义】安装, 下面的【将Python添加在环境变量】大家一定要打个勾③、点击【Next】进行下一步④、这里不建议安装在C盘, 点击【Browse】我在F盘创…

keil报错:Flash Download failed - Could not load file‘..\..\Output\Template.axf

keil报错:Flash Download failed - Could not load file’…\Output\Template.axf,如下图所示: 原因是很多.h文件没有定义位置,可以按照下图操作: 而且,如果是想使用压缩包,那一定要关闭keil后…

Android 数据库封装(SQLite)

Android 数据库操作(SQLite) Android 数据库操作(SQLite)动态预览使用初始化生成表实体类插入数据批量插入删除数据删除全部修改数据查找(列表)查找(单条)条件查找(列表&…

算法刷题 week2

目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质&#xff1…

docker-compose使用

docker-compose docker的项目编排 一、安装docker-compose Rocky Linux Rocky Linux安装Docker Compose的步骤如下: 安装Docker。您可以使用以下命令安装Docker: sudo dnf install docker-ce docker-ce-cli containerd.io安装Docker Compose。您可以…

ChatGPT实战-Embeddings打造定制化AI智能客服

本文介绍Embeddings的基本概念,并使用最少但完整的代码讲解Embeddings是如何使用的,帮你打造专属AI聊天机器人(智能客服),你可以拿到该代码进行修改以满足实际需求。 ChatGPT的Embeddings解决了什么问题? …

上海亚商投顾:三大指数小幅下跌 光刻机概念股午后走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日小幅调整,创业板指走势较弱。减肥药概念股继续大涨,常山药业2连板&#x…

linux( CentOs)对mysql基本操作和密码修改

1.mysql登录 mysql -uroot -p 2.显示所有数据库 Show databases; 3.生产过程中改密码 use mysql ; 查看user表中的user、host、password信息。 select user,host,password from user; select host,user from user;使用“GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIE…

Linux调试器-gdb使用

文章目录 前言一、pandas是什么?1、gdb介绍2、gdb使用2.1 启动gdb和退出gdb2.2 list显示代码命令2. run运行程序命令2.3 break设置断点命令2.4 delete删除断点命令2.5 next逐过程执行命令2.6 step逐语句向下执行命令2.7 print打印表达式值命令2.8 bt命令和finish命令…

初识C语言——详细入门一(系统性学习day4)

目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍: 特点: 基本构成: 二、认识C语言程序 标准格式: 简单C程序: 三、基本构成分类详细介绍 (1)关键字 (2&#xf…

插拔结构脉冲离子风工作原理

脉冲离子风机有着特殊的结构-插拔结构,清洁保养维修更简单、更安全;核心部件模块化;它有着超强的消除静电能。 脉冲台式离子风机的安装方法:将离子风机置于台面上或悬挂于台面上,插上电源插头,打开风机,调节…

微信群发一次能发1000个好友了!你发现了吗?

微信作为我们日常交流的主要工具之一 群发功能在我们的日常生活中也非常实用 但有时候 比如在新年期间 需要向所有客户发送祝福时 在公司做活动期间 向所有客户发起邀约时 如果一个一个点击来发送信息 会非常麻烦 但是!! 我今天发现微信 已经…

部署ik分词器

部署ik分词器 案例版本:elasticsearch-analysis-ik-8.6.2 ​ ES默认自带的分词器对中文处理不够友好,创建倒排索引时可能达不到我们想要的结果,然而IK分词器能够很好的支持中文分词 ​ 因为是集群部署,所以每台服务器中的ES都需…

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

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

C语言指针,深度长文全面讲解

指针对于C来说太重要。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以本文尽可能的通过一篇文章完全讲解指针。 为什么需要指针? 指针解决了一些编程中基本的问题。…

9.19作业

TCP服务器 //创建流式套接字int sfd socket(AF_INET, SOCK_STREAM, 0);if(sfd < 0){ERR_MSG("socket"); return -1;}printf("socket create success sfd%d\n", sfd);//允许端口快速复用in…

MQTT Paho Android 支持SSL/TLS(亲测有效)

MQTT Paho Android 支持SSL/TLS(亲测有效) 登录时支持ssl的交互 这是调测登录界面设计 代码中对ssl/tls的支持 使用MqttAndroidClient配置mqtt客户端请求时&#xff0c;不加密及加密方式连接存在以下几点差异&#xff1a; url及端口差异 val uri: String if (tlsConnect…

[npm]脚手架本地全局安装1

[npm]脚手架本地全局安装1 npm link 全局安装npm install 全局安装卸载全局安装的脚手架 该文章是你的脚手架已经开发完成的前提下&#xff0c;你想要本地全局安装该脚手架&#xff0c;便于本地使用脚手架的命令的情况 npm link 全局安装 如果本地开发的项目是个脚手架&#…

《数据结构、算法与应用C++语言描述》使用C++语言实现二维数组下三角矩阵

《数据结构、算法与应用C语言描述》使用C语言实现二维数组下三角矩阵 下三角矩阵定义 如下图所示&#xff1a; 代码实现 _11lowerTriangularMatrix.h 模板类 /* Project name : allAlgorithmsTest Last modified Date: 2022年8月13日17点38分 Last Version: V1.0 D…

oracle创建表空间、用户、权限以及导入dmp文件

创建表空间 create tablespace A_DATA logging datafile F:\CODEAPP\ORACLE\ORADATA\A_DATA01.DBF size 50m autoextend on next 50m maxsize 32767m extent management local; -- 这个语句将创建一个大小为50MB的数据文件&#xff0c;启用自动扩展功能&#xff0c;每次扩展50…