Bird
Raised Fist0
Pythonprogramming~5 mins

Adding and updating key-value pairs in Python - Time & Space Complexity

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Time Complexity: Adding and updating key-value pairs
O(n)
Understanding Time Complexity

When we add or update key-value pairs in a dictionary, we want to know how the time it takes changes as the dictionary grows.

We ask: How does the work grow when the dictionary gets bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

my_dict = {}
for i in range(n):
    my_dict[i] = i * 2
my_dict[5] = 100

This code adds n key-value pairs to an empty dictionary, then updates the value for key 5.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding or updating a key-value pair in the dictionary inside the loop.
  • How many times: The loop runs n times, so the add/update happens n times.
How Execution Grows With Input

Each time we add or update a key, the work is about the same, no matter how big the dictionary is.

Input Size (n)Approx. Operations
10About 10 adds/updates
100About 100 adds/updates
1000About 1000 adds/updates

Pattern observation: The total work grows directly with n, because each add/update takes roughly the same time.

Final Time Complexity

Time Complexity: O(n)

This means the time to add or update n items grows in a straight line with n.

Common Mistake

[X] Wrong: "Adding or updating a key takes longer as the dictionary gets bigger because it has to search through all keys."

[OK] Correct: Dictionaries use a special method that lets them find keys quickly without checking every item, so each add or update takes about the same time no matter the size.

Interview Connect

Understanding how adding and updating dictionary entries scales helps you explain how your code handles data efficiently, a skill useful in many programming tasks.

Self-Check

"What if we used a list of pairs instead of a dictionary? How would the time complexity change when adding or updating values?"

Practice

(1/5)
1. What happens when you use dictionary[key] = value in Python if the key already exists?
easy
A. A new key-value pair is added without changing the old one.
B. The value for that key is updated to the new value.
C. An error is raised because the key already exists.
D. The dictionary is cleared before adding the new pair.

Solution

  1. Step 1: Understand dictionary key assignment

    Using dictionary[key] = value sets the value for the given key.
  2. Step 2: Behavior when key exists

    If the key exists, the old value is replaced with the new one.
  3. Final Answer:

    The value for that key is updated to the new value. -> Option B
  4. Quick Check:

    Assigning existing key updates value [OK]
Hint: Assigning to existing key updates value, no error [OK]
Common Mistakes:
  • Thinking it adds a duplicate key
  • Expecting an error on existing key
  • Assuming dictionary clears automatically
2. Which of the following is the correct syntax to add a new key-value pair 'color': 'blue' to a dictionary named car?
easy
A. car.color = 'blue'
B. car.add('color', 'blue')
C. car('color') = 'blue'
D. car['color'] = 'blue'

Solution

  1. Step 1: Recall dictionary syntax for adding pairs

    Use dictionary[key] = value to add or update pairs.
  2. Step 2: Check each option

    car['color'] = 'blue' uses correct syntax: car['color'] = 'blue'.
  3. Final Answer:

    car['color'] = 'blue' -> Option D
  4. Quick Check:

    Use square brackets for keys [OK]
Hint: Use square brackets and equals sign to add/update [OK]
Common Mistakes:
  • Using parentheses instead of brackets
  • Trying to call add() method which doesn't exist
  • Using dot notation which works only for objects
3. What is the output of this code?
fruit_colors = {'apple': 'red', 'banana': 'yellow'}
fruit_colors['banana'] = 'green'
fruit_colors['cherry'] = 'red'
print(fruit_colors)
medium
A. {'apple': 'red', 'banana': 'yellow', 'cherry': 'red'}
B. {'apple': 'red', 'banana': 'green'}
C. {'apple': 'red', 'banana': 'green', 'cherry': 'red'}
D. SyntaxError

Solution

  1. Step 1: Update existing key 'banana'

    The value for 'banana' changes from 'yellow' to 'green'.
  2. Step 2: Add new key 'cherry'

    The pair 'cherry': 'red' is added to the dictionary.
  3. Final Answer:

    {'apple': 'red', 'banana': 'green', 'cherry': 'red'} -> Option C
  4. Quick Check:

    Update and add keys correctly [OK]
Hint: Updating key changes value; new key adds pair [OK]
Common Mistakes:
  • Assuming old value stays after update
  • Forgetting to add new key
  • Expecting syntax error from valid code
4. Find the error in this code snippet:
data = {'x': 1, 'y': 2}
data['z'] == 3
print(data)
medium
A. Using '==' instead of '=' to add/update key-value pair.
B. Missing quotes around key 'z'.
C. Dictionary keys must be integers, not strings.
D. print() cannot display dictionaries.

Solution

  1. Step 1: Identify the operator used for assignment

    The code uses '==' which is a comparison operator, not assignment.
  2. Step 2: Correct operator for adding/updating dictionary

    Use '=' to assign value to a key in dictionary.
  3. Final Answer:

    Using '==' instead of '=' to add/update key-value pair. -> Option A
  4. Quick Check:

    Use '=' to assign values [OK]
Hint: Use single '=' to assign, not '==' [OK]
Common Mistakes:
  • Confusing '==' with '='
  • Thinking keys must be numbers
  • Believing print can't show dictionaries
5. You have a dictionary inventory = {'apple': 5, 'banana': 3}. You want to add 2 more apples to the count. Which code correctly updates the inventory?
hard
A. All of the above
B. inventory['apple'] += 2
C. inventory.update({'apple': inventory['apple'] + 2})
D. inventory['apple'] = inventory['apple'] + 2

Solution

  1. Step 1: Understand ways to update dictionary values

    You can update a value by direct assignment, augmented assignment, or using update() method.
  2. Step 2: Check each option

    inventory['apple'] = inventory['apple'] + 2 adds 2 and assigns directly. inventory['apple'] += 2 uses += operator. inventory.update({'apple': inventory['apple'] + 2}) uses update() with new value.
  3. Step 3: Confirm all methods work

    All three correctly increase 'apple' count by 2.
  4. Final Answer:

    All of the above -> Option A
  5. Quick Check:

    Multiple ways to update dictionary values [OK]
Hint: Multiple ways to update values, use any [OK]
Common Mistakes:
  • Thinking only one method works
  • Forgetting to add current value before assignment
  • Using update() incorrectly without new value