python的数据结构列表方法及扩展(栈和队列)

news/2024/12/28 2:52:03/

python_0">python数据结构

pythonlist_2">pythonlist方法

list.append()

添加一个元素到列表末尾。list,append(num)相当于a[len(a):] = [num]

python">a = [1,2,3,4,5]
a.append(6)
print(a)
a[len(a):] = [7]
print(a)

在这里插入图片描述

list.extend()

添加指定列表的所有元素。list.extend(nums)相当于a = a + nums

python">a = [1,2,3]
nums = [6,7,8,9]
a.extend(nums)
print(a)
a = a + nums
print(a)

!在这里插入图片描述

list.insert()

双参数:

在指定位置添加一个元素。

添加到最前面:a.insert(0,x)

添加到最后面:a.insert(len(a),x)(ps:相当于append)

指定位置添加:a.insert(index,x)

python"># 双参数
a = [1,2,3,4,5]
x = 6
a.insert(0,x)
print(a)
a.insert(len(a),x)
print(a)
index = 3
a.insert(index,x)
print(a)
```![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3df6274d1eab42b2a3334c8476c104ca.png#pic_center)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/49a0ba00f749411b8993e98fda8a88ad.png#pic_center)##### list.remove()> 从列表中删除一个数字,如果找不到这个数字返回错误(error)。```python
a = [1,2,3,4]
a.remove(3)
print(a)
a.remove(3) #没有该元素时会报错 

在这里插入图片描述

list.pop()

从列表中指定位置移除一个元素,元素可以可以为空,如果元素为空,默认移除最后一个。

指定移除list.pop(x)

元素为空时表示移除最后一个元素list.pop()

python">a = [1,2,3,4,5]
a.pop(0) # 移除第一个元素
print(a)
a.pop() # 移除最后一个元素
print(a)

在这里插入图片描述

list.clear()

清除列表中所有元素,等于del a[:]

使用示例:

python">a = [1,2,3,4]
a.clear()
print(a) # 打印空列表

在这里插入图片描述

list.count()

参数x返回该列表中出现了几次x

使用示例

python">a = [1,2,3,4,2,3]
print(a.count(2))
print(a.count(5))

在这里插入图片描述

list.排序

list.sort()将列表排列为升序列表。

list.reverse()将列表排列为降序列表。

使用示例:

python">a = [11,6,4,92,43,77]
a.sort()
print(a)
a.reverse()
print(a)

在这里插入图片描述

练习题目1:

要求:利用列表来写一个栈(先进后出)。

功能:1.压入栈顶。2.弹出栈顶。3.查看栈顶元素。4.检查空。5.获取栈大小。

python">class My_Stack:def __init__(self):# 初始化栈self.a = []def add(self, num):# 添加元素到栈底self.a.append(num)def pop(self):# 弹出元素if not self.exist():return self.a.pop()else:return Nonedef check(self):# 获取最后一个元素if not self.exist():lens = len(self.a)return self.a[lens - 1]else:return Nonedef exist(self):#检查是否为空return len(self.a) == 0def size(self):#获取栈大小return len(self.a)

练习题目2:

要求:利用列表来写一个队列(先进先出)。

功能:1.压入队列。2.弹出队列。3.查看队首元素。4.检查空。5.获取队列大小。

python">class myQueue:def __init__(self):self.a = []def add(self, num):# 添加元素self.a.append(num)def pop(self):#弹出队列if not self.exist():num = self.a[0]self.a.remove(num)return numelse:return Nonedef check(self):#查看队首元素if self.exist():return self.a[0]else:return Nonedef exist(self):#检查空return len(self.a) == 0def size(self):#获取队列大小return len(self.a)

collections.deque()队列

python"># 导入
from collections import deque
# 1.创建队列
queue = deque()
# 2.添加元素
queue.append('a')
# 3.队首移除元素
queue.popleft()
# 4.查看队首元素
queue.[0]
# 5.检查队列是否为空
isEmpty = len(queue) == 0
# 6.获取队列大小
len(queue)

列表推导式

从序列中创建新的列表的简单途径,将操作应用于每一个元素,获得新的列表。

示例1:

python">ver = [2,4,6]
# 1.第一种变法
ver = [3*x for x in ver]
print(ver)
# 2.第二种变法
ver = [2,4,6]
ver = [[x,x**2] for x in ver]
print(ver)

在这里插入图片描述

if 作为过滤器

python"># 语法格式
ver = [1,2,3,4]
ver = [3 * x for x in  ver if x>3]
print(ver)

在这里插入图片描述

示例:

python"># 使用两个元素
vec = [2,4,6]
vec2 = [4,3,-9]
vec3 = [x,y for x in vec for y in vec2 if x > 2]
print(vec3)

在这里插入图片描述

复杂嵌套

python"># round() 取小数点后i位
vec = [str(round(355 / 113, i)) for i in range(1, 6)]
print(vec)

在这里插入图片描述

del语句

可以根据索引从列表中删除一个或多个元素。

使用示例:

python">a = [1,2,3,4,5]
# 使用索引删除
del(a[0])
print(a)
# 删除索引范围内所有的元素
del(a[1:2])
print(a)
# 删除列表中所有元素
del(a[:])

不仅如此,元组、序列、字典、集合都属于python数据结构

数据的遍历

item:遍历为下一个数值仅仅用于字典【dict】

enumerate():得到遍历列表的下标以及数值

zip():遍历多个列表

reversed():不改变原有序列进行倒叙遍历

sort():不改变原有序列进行顺序遍历

具体使用示例:

python">a = [9, 36, 4, 33, 45, 67, 29, 64, 32, 19, 75]# enumerate
for v, k in enumerate(a):print('i:' + str(v) + ' num:' + str(k), end=', ')
# zip
print()
b = [2, 3, 54, 62, 17, 89]
for v, k in zip(a, b):print(v, k, end=', ')
# reversed sort
print()
for i in reversed(range(len(a))):print(i, end=',')
# sort
print()
for i in sorted(range(len(a))):print(i, end=',')

在这里插入图片描述


http://www.ppmy.cn/news/1544316.html

相关文章

教你快速学会新媒体运营,你必须掌握的新媒体应用分别有哪些,详细介绍这些应用都有哪些功能和特点,快收藏吧!

一、引言 在当今数字化时代,新媒体运营已成为企业和个人发展的重要手段。通过掌握一系列关键的新媒体应用,我们可以迅速提升运营效率,实现内容分发、自媒体变现等目标。本文将详细介绍新媒体运营中必须掌握的几种应用及其功能。 二、Ai新媒运…

无人机场景 - 目标检测数据集 - 夜间车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:无人机场景夜间车辆检测数据集,真实场景高质量图片数据,涉及场景丰富,比如夜间无人机场景城市道路行驶车辆图片、夜间无人机场景城市道边停车车辆图片、夜间无人机场景停车场车辆图片、夜间无人机场景小区车辆图片、夜…

基于Retinex算法的图像去雾matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff09…

Git本地分支更新推送到远程主分支上

本地分支(debug)开发之前: git pull origin dev(主分支)git merge 这步merge可能会现异常:error:Merging is not possible because you have ynmerged files,出现冲突文件&#xff…

【android12】【AHandler】【3.AHandler原理篇AHandler类方法全解】

AHandler系列 【android12】【AHandler】【1.AHandler异步无回复消息原理篇】-CSDN博客 【android12】【AHandler】【2.AHandler异步回复消息原理篇】-CSDN博客 其他系列 本人系列文章-CSDN博客 1.简介 前面两篇我们主要介绍了有回复和无回复的消息的使用方法和源码解析&a…

Java 实现 RESTful 风格的 Web 服务详解

前言 RESTful(Representational State Transfer)风格的 API 已经成为现代 Web 服务的标准。它通过简单的 HTTP 方法和资源定位来提供了一种高度可扩展和易于维护的服务接口。Java 作为一种功能强大且广泛使用的编程语言,提供了多种框架来实现…

一个免费开源自托管的机器翻译项目,支持API接口

大家好,今天给大家分享一个免费且开源的机器翻译项目LibreTranslate,旨在为用户提供一个完全自由且安全的翻译解决方案。 项目介绍 LibreTranslate采用神经翻译技术,使用开源语言模型对文本进行翻译,无需依赖外部服务。该项目的主…

多数元素算法

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums [3,2,3] 输出:3 示例 …