python 队列基本定义与使用方法【初始化、赋值、判断等】

yizhihongxing

Python 队列基本定义与使用方法

队列(Queue)是一种线性数据结构,它具有先进先出的特点。即先进入队列的元素,先出队列。

Python中的队列可以使用collections库中的deque双端队列来实现。deque是一个双向队列,支持在两端进行插入和删除操作,实现了O(1)的时间复杂度。

初始化队列

可以使用collections库中的deque,也可以自己定义一个队列类。

# 导入collections库中的deque模块
from collections import deque

# 初始化一个队列
queue = deque()

使用自定义的队列类:

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0, item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

# 初始化一个队列
queue = Queue()

队列元素的操作

元素插入:enqueue()

使用append()方法可以在队列的末尾增加一个元素,对应到deque中,使用appendleft()方法,可以在队列的最左端插入一个元素。

# 导入collections库中的deque模块
from collections import deque

# 初始化一个队列
queue = deque()

# 在队列中插入元素
queue.append(1)
queue.append(2)
queue.appendleft(0)

# 输出当前队列中的所有元素
print(queue) # 输出 [0, 1, 2]

使用自定义的队列类:

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0, item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

# 初始化一个队列
queue = Queue()

# 在队列中插入元素
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)

# 输出当前队列中的所有元素
print(queue.items) # 输出 [3, 2, 1]

元素弹出:dequeue()

使用popleft()可以把队列最左端的元素弹出。

# 导入collections库中的deque模块
from collections import deque

# 初始化一个队列
queue = deque([0, 1, 2])

# 输出当前队列中的所有元素
print(queue) # 输出 [0, 1, 2]

# 弹出队列最左端的元素
queue.popleft()

# 输出当前队列中的所有元素
print(queue) # 输出 [1, 2]

使用自定义的队列类:

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0, item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

# 初始化一个队列
queue = Queue()

# 在队列中插入元素
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)

# 输出当前队列中的所有元素
print(queue.items) # 输出 [3, 2, 1]

# 弹出队列最左端的元素
queue.dequeue()

# 输出当前队列中的所有元素
print(queue.items) # 输出 [3, 2]

判断队列是否为空:is_empty()

# 导入collections库中的deque模块
from collections import deque

# 初始化一个队列
queue = deque()

# 判断队列是否为空
print(queue.is_empty()) # 输出 True

# 在队列中插入元素
queue.append(1)

# 判断队列是否为空
print(queue.is_empty()) # 输出 False

使用自定义的队列类:

class Queue:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0, item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

# 初始化一个队列
queue = Queue()

# 判断队列是否为空
print(queue.is_empty()) # 输出 True

# 在队列中插入元素
queue.enqueue(1)

# 判断队列是否为空
print(queue.is_empty()) # 输出 False

结语

以上就是 Python 中队列的基本定义与使用方法,总结起来包括初始化,元素的插入和弹出,以及判断队列是否为空。当然在实际应用中,队列的使用方法还需要根据具体场景进行把握。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 队列基本定义与使用方法【初始化、赋值、判断等】 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • 如何提高python 中for循环的效率

    针对如何提高 Python 中 for 循环的效率这一问题,以下是我的完整攻略: 1. 使用列表推导式代替 for 循环 在 Python 中,我们通常会使用 for 循环来对一个列表或其他可迭代对象进行遍历,这样往往会导致时间效率比较低下。因此,我们可以使用列表推导式来代替 for 循环,从而提高程序的效率。例如,如果我们要对一个列表进行平方运算,常规的 …

    python 2023年5月18日
    00
  • Python实现一个带权无回置随机抽选函数的方法

    为了实现一个带权无回置随机抽选函数,我们需要以下几个步骤: 1. 确定数据结构 将需要进行抽选的元素,以及每个元素对应的权重存储到一个列表中,并将其转化为一个字典。字典的键为元素,值为对应的权重。例如,以下字典代表了4个元素及其对应的权重: weights = { ‘A’: 10, ‘B’: 5, ‘C’: 3, ‘D’: 2 } 2. 计算总权重 通过遍历…

    python 2023年6月3日
    00
  • 基于python分享极坐标下的几类典型曲线

    基于Python分享极坐标下的几类典型曲线完整攻略如下: 一、背景介绍 随着数据可视化在各领域的广泛应用,Python中的matplotlib包也成为了常用的数据可视化工具之一。极坐标是matplotlib的一个常用功能之一,我们可以使用它来绘制一些典型的曲线图形,例如花瓣曲线、螺旋线等。本文将会介绍几种在极坐标下的典型曲线及其代码实现。 二、花瓣曲线 花瓣…

    python 2023年5月18日
    00
  • 学会用Python实现滑雪小游戏,再也不用去北海道啦

    学会用Python实现滑雪小游戏攻略 1. 准备工作 在本地安装Python编程环境,可以使用Python官方网站提供的下载地址。 安装Python后,在命令行中使用pip安装pygame库,可以使用以下命令: pip install pygame 获取游戏所需的资源,在此示例中,我们使用了以下资源文件:background.png、skier_down.p…

    python 2023年6月2日
    00
  • 在python中创建表格的两种方法实例

    下面是创建表格的两种方法的完整实例教程。 方法一:使用pandas库创建表格 首先需要确保已经安装pandas库,如果没有安装可以使用以下命令进行安装: pip install pandas 接下来,导入pandas库并创建一个DataFrame对象: import pandas as pd data = {‘姓名’: [‘张三’, ‘李四’, ‘王五’],…

    python 2023年5月13日
    00
  • 强烈推荐好用的python库合集(全面总结)

    强烈推荐好用的Python库合集(全面总结) 介绍 Python是一门应用广泛的编程语言,在日常开发中,借助各种各样的Python库,可以帮助我们更快速、更高效地完成各种任务。本文总结了一些我在开发中常用的Python库,并结合示例介绍它们的使用方法。 Pandas Pandas 是一个强大的数据分析工具,在读取、处理、分析和展示数据方面提供了很多便利。它可…

    python 2023年5月20日
    00
  • 详解Python PIL ImageDraw.Draw.arc()

    Python PIL库中的ImageDraw模块提供了很多用于绘制基本图形和在图像上绘制文本和线条等的函数,其中Draw.arc()函数用于在给定的矩形内绘制一个圆弧。下面是关于使用Draw.arc()函数的完整攻略。 函数格式 Draw.arc(xy, start, end, fill=None, width=0) 参数说明: xy:指定圆弧的外接矩形,格…

    python-answer 2023年3月25日
    00
  • pymssql数据库操作MSSQL2005实例分析

    pymssql数据库操作MSSQL2005实例分析 简介 pymssql是Python对MSSQL数据库的一种驱动程序,可以通过它连接MSSQL数据库并执行SQL语句。 安装 安装pymssql python pip install pymssql 安装MSSQL驱动 对于Windows系统用户,需要下载Microsoft ODBC Driver for S…

    python 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部