您可能想要使用的容器是deque,据我所知,在 collections 模块中没有 ww 这样的变量。
简单地说,双端队列与列表非常相似,但它经过优化,您可以轻松(有效地)在两端添加和删除项目,这比内置列表的效率略高. deques 还提供了一些列表中没有的附加方法,例如旋转。虽然用列表结合基本操作来做同样的事情真的很容易,但它们并没有针对这类事情进行优化,而 deques 是。但是对于像模拟 Enigma 机器这样简单的事情,坚持使用列表不会对性能产生太大影响。
我猜你正在尝试做类似的事情:
import collections
w = collections.deque([1, 2, 3, 4, 5])
print "Deque state is ", w
print "First item in deque is", w[0]
w.rotate(1)
print "Deque state after rotation is ", w
print "First item in deque is", w[0]
这应该打印
Deque state is deque([1, 2, 3, 4, 5])
First item in deque is 1 Deque
state after rotation is deque([5, 1, 2, 3, 4])
First item in deque is 5
使用负数作为旋转的参数以转向另一种方式
以下是仅使用内置列表的替代实现
w = [1, 2, 3, 4, 5]
print "List state is ", w
print "First item in list is", w[0]
x = 1 # x is rotation
w0 = w[:-x]
w = w[-x:]
w.extend(w0)
print "List state after rotation is ", w
print "First item in list is", w[0]