script_4.py - List as Queue (FIFO)
Code
See script_4.py for full code.
Explanation
Line 8: from collections import deque
- Imports deque (double-ended queue) from collections module
- More efficient than list for queue operations
Line 12: self.queue = deque()
- Creates empty deque
- deque is a type (like list but optimized)
- Supports fast append/pop from both ends
Line 17: self.queue.append(task)
- .append() adds to right end (like list)
- Enqueue operation (add to back of queue)
Line 22: task = self.queue.popleft()
- .popleft() is deque-specific method
- Removes and returns from left end (front of queue)
- O(1) time complexity (constant time)
- List's .pop(0) is O(n) - much slower
- FIFO: First In, First Out
Line 30: def peek(self):
- Access front element without removing
- Uses index [0] to read first element
- Doesn't modify the deque
Line 34: return len(self.queue)
- len() works on deque just like lists
- Returns integer count of elements