📖 Scenario: Imagine you are managing a line of customers waiting for service. Sometimes customers leave from the front or the back of the line. You want to keep track of the line and remove customers from either end as needed.
🎯 Goal: You will create a list representing the line of customers, set up a variable to choose which end to remove a customer from, write the code to remove a customer from that end, and finally print the updated line.
📋 What You'll Learn
Create a list called line with these exact customers in order: 'Alice', 'Bob', 'Charlie', 'Diana', 'Ethan'
Create a variable called remove_from_front and set it to True
Write code to remove one customer from the front of the line if remove_from_front is True, otherwise remove one customer from the back
Print the updated line list
💡 Why This Matters
🌍 Real World
Managing lines or queues in places like banks, stores, or amusement parks where people can leave from either end.
💼 Career
Understanding how to manipulate lists and use conditions is important for programming tasks involving queues, stacks, and other data structures.
Progress0 / 4 steps
1
Create the initial line of customers
Create a list called line with these exact customers in order: 'Alice', 'Bob', 'Charlie', 'Diana', 'Ethan'
DSA Python
Hint
Use square brackets to create a list and put the names inside quotes separated by commas.
2
Set the removal direction
Create a variable called remove_from_front and set it to True
DSA Python
Hint
Use the equals sign to assign True to remove_from_front.
3
Remove a customer from the chosen end
Write code to remove one customer from the front of the line if remove_from_front is True, otherwise remove one customer from the back
DSA Python
Hint
Use an if-else statement. Use line.pop(0) to remove from front and line.pop() to remove from back.
4
Print the updated line
Print the updated line list
DSA Python
Hint
Use print(line) to show the updated list.
Practice
(1/5)
1. What is the main feature of a deque (double-ended queue) compared to a regular queue?
easy
A. It only stores unique elements
B. Elements can only be added at the rear
C. Elements can be added or removed from both ends
D. Elements can only be removed from the front
Solution
Step 1: Understand queue vs deque
A regular queue allows adding at rear and removing from front only.
Step 2: Identify deque feature
A deque allows adding and removing elements from both front and rear ends.
Final Answer:
Elements can be added or removed from both ends -> Option C
Quick Check:
Deque = double-ended queue [OK]
Hint: Deque means double-ended, so both ends work [OK]
Common Mistakes:
Thinking deque works like a normal queue
Assuming elements can only be added at one end
Confusing deque with stack
2. Which of the following is the correct syntax to add an element '5' to the front of a deque named d in Python?
easy
A. d.push_front(5)
B. d.addfront(5)
C. d.insert_front(5)
D. d.appendleft(5)
Solution
Step 1: Recall deque methods in Python
Python's collections.deque uses appendleft() to add at front.
Step 2: Check method names
Other options are not valid deque methods in Python.
Final Answer:
d.appendleft(5) -> Option D
Quick Check:
appendleft adds to front [OK]
Hint: Use appendleft() to add front in Python deque [OK]
Common Mistakes:
Using non-existent methods like push_front
Confusing append() with appendleft()
Trying to use list methods on deque
3. What will be the output of the following code?
from collections import deque
d = deque([1, 2, 3])
d.appendleft(0)
d.pop()
print(list(d))
medium
A. [0, 1, 2]
B. [1, 2, 3, 0]
C. [0, 1, 2, 3]
D. [1, 2]
Solution
Step 1: Initial deque and appendleft
Start with deque [1, 2, 3]. appendleft(0) adds 0 at front: [0, 1, 2, 3].
Step 2: pop removes from rear
pop() removes last element 3: [0, 1, 2].
Final Answer:
[0, 1, 2] -> Option A
Quick Check:
appendleft + pop = [0,1,2] [OK]
Hint: appendleft adds front, pop removes rear [OK]
Common Mistakes:
Thinking pop removes from front
Ignoring appendleft effect
Confusing list(d) output
4. Identify the error in the following code snippet:
from collections import deque
d = deque([10, 20, 30])
d.removeleft()
print(d)
medium
A. removeleft() is not a valid deque method
B. deque cannot be initialized with a list
C. print(d) should be print(list(d))
D. No error, code runs fine
Solution
Step 1: Check deque methods
deque has no method named removeleft(); correct method to remove front is popleft().
Step 2: Validate other parts
deque can be initialized with list; print(d) works; so no other errors.
Final Answer:
removeleft() is not a valid deque method -> Option A
Quick Check:
Use popleft() to remove front [OK]
Hint: Use popleft(), not removeleft() [OK]
Common Mistakes:
Using non-existent removeleft() method
Thinking print(d) causes error
Confusing initialization syntax
5. You have a deque d = deque([1, 2, 3, 4]). You perform these operations: