在Python中高效地在两个方向上遍历双端队列

use*_*728 3 python python-2.7

我有一个双端队列,我们​​称之为deq。我需要从两端进行迭代,并且在这些迭代过程中都不会对其进行任何修改。

自然,我不想创建另一个双端队列。我考虑过了reversed,但是我不知道它是否真的创建了任何副本。例如,如果我写的是:

reversed_deq = reversed(deq)
Run Code Online (Sandbox Code Playgroud)

它会引用完全相同的内存位置,而是简单地反向迭代它,而不使用更多的内存/时间吗?

这似乎是进入双端队列的逻辑方法,但是我想确保自己没有遗漏任何东西。

我找不到用于双端队列的代码(通常它们具有这些东西的“ python等效项,但我找不到”),由于某种原因-无论运行什么,timeit总是给我15到16之间的值ns(对于我尝试计时的所有事情,不仅限于此)

csu*_*y95 5

C源中, reversed([deque])返回一个反向迭代器,没有副本或内存分配。[deque] .reverse()会将其反转到位。