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>
							 | 
						||
| 
								 | 
							
								
							 |