带Deques的冒号运算符(Python中)

带Deques的冒号运算符(Python中),python,arrays,deque,slice,colon,Python,Arrays,Deque,Slice,Colon,我希望在我的deque中使用冒号操作符,但它似乎与列表的工作方式不同 我试着说: myDeque = deque([0,1,2,3,4,5]) myDequeFunction(myDeque[3:]) 这是我收到的错误: TypeError:序列索引必须是整数,而不是“切片” 使用deque进行数组切片的最佳方法是什么?deque对象本身不支持切片,但您可以创建一个新的deque: sliced_deque = deque(list(old_deque)[3:]) collections.d

我希望在我的deque中使用冒号操作符,但它似乎与列表的工作方式不同

我试着说:

myDeque = deque([0,1,2,3,4,5])
myDequeFunction(myDeque[3:])
这是我收到的错误: TypeError:序列索引必须是整数,而不是“切片”


使用deque进行数组切片的最佳方法是什么?

deque对象本身不支持切片,但您可以创建一个新的deque:

sliced_deque = deque(list(old_deque)[3:])

collections.deque
对象不支持切片。做一个新的会更简单

n_deque = deque(list(d)[3:])

由于deque的性质,迭代可能比蛮力方法(注:unproven)更快

>>> myDeque = collections.deque([0,1,2,3,4,5])
>>> list(itertools.islice(myDeque, 3, sys.maxint))
[3, 4, 5]

如果OP想要一个新的
deque
,您可以提供
None
而不是
sys.maxint
deque()
而不是
list()