我如何首先获得出队的n个元素,然后获得出队的n + 1至2n个元素,依此类推。
我知道如何在列表上进行操作,但是使用相同的方法,我得到了:
from collections import deque
d = deque('ghi')
print d[:2]
我得到了以下内容:
$python main.py
deque(['g', 'h', 'i'])
3
Traceback (most recent call last):
File "main.py", line 7, in <module>
a = d[:2]
TypeError: sequence index must be integer, not 'slice'
答案 0 :(得分:1)
您可以使用itertools
,
from collections import deque
import itertools
d = deque('ghi')
print (list(itertools.islice(d, 1, 3)))
# output,
['h', 'i']
或者如果要打印为字符串,
print (''.join(itertools.islice(d, 1, 3)))
#output,
hi
答案 1 :(得分:0)
尝试itertools.islice()
deque_slice = collections.deque(itertools.islice(d, 0, 2))
请注意,您不能对islice使用负索引或步进值。
更多详细信息here