Python Deque Peek 介绍
本文演示了如何在 Python 中查看/检查双端队列(双端队列)前面的元素,而无需将它们从双端队列中删除。
Python Deque Peek 概述
在我们的程序中使用双端队列时,我们可能想检查双端队列前面的内容。 根据双端队列前面可能出现的内容,我们可能想要采取不同的操作。
虽然弹出元素并检查必要条件似乎是最明显的,但它并不总是最佳选择。 一个典型的场景可能是一个不允许改变双端队列的约束; 除此之外,这也是一种不必要的操作。
考虑以下代码:
from collections import deque
data = deque([1,2,3,4,5,6,7,8,9,10])
在这段代码中,我们首先从 collections 模块中导入 deque 数据结构,该模块随 Python 安装一起提供。 之后,初始化一个双端队列,元素范围为 1 到 10。
现在,我们需要访问双端队列的前端,而不从任何方向弹出双端队列的元素。 我们该怎么做? 下面一起来了解一下吧。
解决方案:使用索引通过 deque 类查看前面的元素
在讨论解决方案之前,我们必须了解索引在 Python 中是如何工作的,以及我们如何利用索引来访问双端队列的前端成员而不弹出任何元素。
Python 中的索引
Python index()
方法根据可迭代对象中的位置来引用特定元素。 因此,我们也可以说,我们可以直接访问一个可迭代对象中的所需元素,并根据您的要求执行各种操作。
与几乎所有其他编程语言一样,Python 中的对象是零索引的,这意味着位置计数从零开始。 许多其他编程语言都遵循相同的结构。
因此,如果列表中有五个项目,则初始元素(最左边的元素)占据零位置,然后是第一、第二、第三和第四位置的元素。
如果我们以项目名称作为参数在列表上调用 index()
方法,则该方法会显示列表中特定项目的索引。
考虑以下代码:
cars = ["Suzuki", "Honda", "Chevrolet", "Ford", "Tesla"]
#Printing out the indexes of Suzuki and Tesla
print("Index of Suzuki: ", cars.index("Suzuki"))
print("Index of Tesla: ", cars.index("Tesla"))
输出:
Index of Suzuki: 0
Index of Tesla: 4
Python 索引运算符
方括号 []
代表Python中的索引运算符。 但是,语法要求您将数字放在括号内。
句法:
IterableObject[index]
Python 中的负索引
到目前为止,我们在前面的示例中始终在索引运算符(方括号 [])中使用正整数; 负指标也存在。
如果我们对列表的最后几个成员感兴趣,或者如果我们想从另一端索引列表,我们可以经常使用负整数。
负索引描述了这种从另一端进行索引的方法。 考虑以下代码:
cars = ["Suzuki", "Honda", "Chevrolet", "Ford", "Tesla"]
#Printing out the indexes of Suzuki and Tesla
print(cars[-1])
print(cars[-2])
给出以下输出:
Tesla
Ford
现在我们知道了负索引是如何工作的,我们的问题的解决方案就变得一目了然了。 考虑以下代码:
from collections import deque
data = deque([1,2,3,4,5,6,7,8,9,10])
print("First Element: " + str(data[0]))
print("Second Element: " + str(data[-1]))
输出:
First Element: 1
Second Element: 10
它之所以有效,是因为该双端队列也可以理解为基于索引访问的列表。
您可以使用 deque[0]
查看前面的元素,并使用 deque[-1]
查看最后一个元素。 它的工作原理是没有元素从左侧或右侧弹出,而且看起来也很高效。
相关文章
Python 中的异步请求
发布时间:2023/06/22 浏览次数:74 分类:Python
-
今天我们来学习一下异步请求; 这个讨论将引出代码示例,看看我们如何在 Python 中编写异步请求。Python 中的异步请求
Python - 等待异步函数完成
发布时间:2023/06/22 浏览次数:163 分类:Python
-
本文介绍如何创建异步函数并使用await 关键字中断进程。 我们还将学习如何在 Python 中使用任务而不是线程。
在 Python 中列出虚拟环境
发布时间:2023/06/21 浏览次数:149 分类:Python
-
在本文中,我们将讨论什么是 Python 中的虚拟环境以及列出它们的一些命令。虚拟环境是一个独立的环境,我们可以在其中安装库、包、脚本和Python解释器。
Python 中的 Urljoin 简介
发布时间:2023/06/21 浏览次数:178 分类:Python
-
本篇文章介绍了如何使用 Python 中的 urljoin() 模块形成 URL,并介绍了使用该模块时的行为。
Python 中并发方面的差异
发布时间:2023/06/21 浏览次数:68 分类:Python
-
本文将讨论如何在Python中实现并发以及其优点和缺点。线程和多线程 线程在Python中已经存在很长时间了。
Python 中从线程获取返回值
发布时间:2023/06/21 浏览次数:145 分类:Python
-
这篇文章首先讨论了线程的基础知识,并提供了一个在Python中启动线程的代码示例。然后,我们将讨论一个在线程中获取函数返回值的代码。
在 Python 中从文本创建 N-Grams
发布时间:2023/06/21 浏览次数:65 分类:Python
-
本文将讨论如何使用 Python 中的功能和库创建 n-gram。使用 for 循环在 Python 中从文本创建 n-gram 我们可以有效地创建一个 ngrams 函数,该函数接受文本和 n 值,并返回一个包含 n-gram 的列表。
用于 Python 的 Vim 自动完成
发布时间:2023/06/21 浏览次数:180 分类:Python
-
Vim(Vi Improved的缩写)是一款功能强大的文本编辑器,常被作为Python开发环境的首选。本文将探讨Vim及其用于Python的自动补全功能。
Python 数独求解器
发布时间:2023/06/21 浏览次数:188 分类:Python
-
本文介绍了我们如何使用 Python 来解决数独问题。 通过适应回溯算法,它可以作为一个准确的数独解算器。