Bird
Raised Fist0
Pythonprogramming~5 mins

Accessing values using keys 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: Accessing values using keys
O(1)
Understanding Time Complexity

When we access values using keys in a dictionary, we want to know how long it takes as the dictionary grows.

We ask: How does the time to find a value change when the dictionary gets bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


my_dict = {i: i*2 for i in range(n)}
key_to_find = n - 1
value = my_dict[key_to_find]
print(value)
    

This code creates a dictionary with n items, then accesses a value by its key once.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Accessing a value by key in the dictionary.
  • How many times: Exactly once.
How Execution Grows With Input

Accessing a value by key takes about the same time no matter how big the dictionary is.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The time stays almost the same even if the dictionary grows larger.

Final Time Complexity

Time Complexity: O(1)

This means accessing a value by its key takes about the same time no matter how many items are in the dictionary.

Common Mistake

[X] Wrong: "Accessing a value by key takes longer as the dictionary gets bigger because it has to check many items."

[OK] Correct: Dictionaries use a special method to find keys quickly, so it does not check every item one by one.

Interview Connect

Knowing that dictionary key access is fast helps you write efficient code and answer questions confidently in interviews.

Self-Check

"What if we tried to find a value by searching through all keys instead of using direct access? How would the time complexity change?"

Practice

(1/5)
1. What is the correct way to access the value associated with the key 'name' in the dictionary person = {'name': 'Alice', 'age': 30}?
easy
A. person.get('age')
B. person.name
C. person['name']
D. person['Alice']

Solution

  1. Step 1: Identify the dictionary and key

    The dictionary is person and the key to access is 'name'.
  2. Step 2: Use correct syntax to access value by key

    In Python, dictionary values are accessed using square brackets and the key as a string: person['name'].
  3. Final Answer:

    person['name'] -> Option C
  4. Quick Check:

    Access value by key = person['name'] [OK]
Hint: Use square brackets with the key string to get value [OK]
Common Mistakes:
  • Using dot notation like person.name (not valid for dict)
  • Using a value instead of key inside brackets
  • Accessing a different key than asked
2. Which of the following is the correct syntax to safely get the value for key 'city' from dictionary data without causing an error if the key does not exist?
easy
A. data['city']
B. data.get('city')
C. data.city
D. data['City']

Solution

  1. Step 1: Understand safe access in dictionaries

    Using data['city'] causes an error if the key is missing. Using data.get('city') returns None instead.
  2. Step 2: Identify correct method for safe access

    The get() method is designed to safely access keys without errors.
  3. Final Answer:

    data.get('city') -> Option B
  4. Quick Check:

    Safe key access = data.get('city') [OK]
Hint: Use get() to avoid errors if key missing [OK]
Common Mistakes:
  • Using square brackets which raise KeyError if key missing
  • Using dot notation which is invalid for dict
  • Using wrong key case causing KeyError
3. What will be the output of this code?
info = {'a': 1, 'b': 2, 'c': 3}
print(info['b'])
medium
A. 2
B. 1
C. 3
D. KeyError

Solution

  1. Step 1: Identify the dictionary and key accessed

    The dictionary info has key 'b' with value 2.
  2. Step 2: Access the value using the key

    The code prints info['b'], which is 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    info['b'] = 2 [OK]
Hint: Look up the key's value directly in the dictionary [OK]
Common Mistakes:
  • Confusing key with value
  • Expecting KeyError when key exists
  • Mixing up keys and values
4. The following code causes an error. What is the problem?
data = {'x': 10, 'y': 20}
print(data['z'])
medium
A. TypeError because keys must be integers
B. SyntaxError due to wrong brackets
C. No error, prints 0
D. KeyError because 'z' is not in the dictionary

Solution

  1. Step 1: Check if key exists in dictionary

    The key 'z' is not present in data.
  2. Step 2: Understand error caused by missing key

    Accessing a missing key with square brackets raises a KeyError.
  3. Final Answer:

    KeyError because 'z' is not in the dictionary -> Option D
  4. Quick Check:

    Missing key access = KeyError [OK]
Hint: Check if key exists before accessing or use get() [OK]
Common Mistakes:
  • Assuming missing keys return 0 or None
  • Confusing syntax error with runtime error
  • Using wrong bracket types
5. Given the dictionary grades = {'Alice': 85, 'Bob': 92, 'Charlie': 78}, which code snippet correctly prints Bob's grade or 'Not found' if Bob is not in the dictionary?
hard
A. print(grades.get('Bob', 'Not found'))
B. print(grades['Bob'] or 'Not found')
C. print(grades['bob'] or 'Not found')
D. print(grades.get('Bob'))

Solution

  1. Step 1: Understand the goal

    We want to print Bob's grade if present, otherwise print 'Not found'.
  2. Step 2: Analyze each option

    print(grades['Bob'] or 'Not found') will raise KeyError if key missing because access happens before 'or'. print(grades.get('Bob', 'Not found')) uses get() with default value, which is concise and safe. print(grades['bob'] or 'Not found') uses wrong key case and will fail. print(grades.get('Bob')) prints None if key missing, not 'Not found'.
  3. Final Answer:

    print(grades.get('Bob', 'Not found')) -> Option A
  4. Quick Check:

    Use get() with default for safe access [OK]
Hint: Use get(key, default) to handle missing keys easily [OK]
Common Mistakes:
  • Using wrong key case causing missing key
  • Not providing default value in get()
  • Assuming or operator works for missing keys