Filter by Price - codepath/compsci_guides GitHub Wiki
Unit 2 Session 2 (Click for link to problem statements)
U-nderstand
Understand what the interviewer is asking for by using test cases and questions about the problem.
- Will the original dict be modified?
- Yes.
P-lan
Plan the solution with appropriate visualizations and pseudocode.
General Idea: First, make a list of keys to remove. Next, actually remove them and add them to a results list.
1) Create an empty list to store keys to remove
2) Loop through the keys of the items dict
a) If the price for that key is below threshold, add to list
3) If the list of items to remove is empty, return None
4) Loop through the list of items to remove
a) For each item, remove the dictionary entry for that key
5) Return the list of items to remove
⚠️ Common Mistakes
- If you remove things from a dict WHILE looping through the dict, your program will likely not work as intended.
I-mplement
def remove_items_below_price(items, price_threshold):
# Initialize a list to hold the names of items that will be removed
items_to_remove = []
# Collect item names to remove in a separate list to avoid modifying the dictionary while iterating
for item, price in items.items():
if price < price_threshold:
items_to_remove.append(item)
# Check if any item meets the condition; if not, return None
if not items_to_remove:
return None
# Remove the items from the dictionary and prepare a list of removed items
removed_items = []
for item in items_to_remove:
removed_items.append(item)
items.pop(item)
return removed_items