34 lines
922 B
Markdown
34 lines
922 B
Markdown
|
---
|
||
|
title: Deque
|
||
|
---
|
||
|
## Using List as Queues
|
||
|
|
||
|
It is also possible to use a list as a queue, where a FIFO ("first-in, first-out") operation is needed. Lists are not efficient
|
||
|
as queue while using appends and pops, as it can get slow as all elements will have to be shifted by one for each appends / pops.
|
||
|
|
||
|
To implement a queue, use collections.deque which was designed to have fast appends and pops from both ends.
|
||
|
|
||
|
|
||
|
#### Example Usage
|
||
|
```py
|
||
|
|
||
|
from collections import deque
|
||
|
queue = deque(["January", "February", "March", "April"] )
|
||
|
|
||
|
queue.append("May")
|
||
|
|
||
|
queue.popleft()
|
||
|
queue.popleft()
|
||
|
|
||
|
print "Spring months in the list: ", queue
|
||
|
```
|
||
|
|
||
|
#### Output
|
||
|
```
|
||
|
Spring months in the list: deque(['March', 'April', 'May'])
|
||
|
```
|
||
|
|
||
|
#### More Information:
|
||
|
The official documentation for `collections.deque` can be found <a href='https://docs.python.org/3/library/collections.html#collections.deque' target='_blank' rel='nofollow'>here</a>
|
||
|
|