带Deques的冒号运算符(Python中)
我希望在我的deque中使用冒号操作符,但它似乎与列表的工作方式不同 我试着说:带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
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()
。