Bird
Raised Fist0
Pythonprogramming~10 mins

Dictionary iteration in Python - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to print all keys in the dictionary.

Python
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict[1]:
    print(key)
Drag options to blanks, or click blank then click option'
A.keys()
B.items()
C.values()
D[]
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using .values() instead of .keys() will give values, not keys.
Using .items() returns key-value pairs, not just keys.
2fill in blank
medium

Complete the code to print all values in the dictionary.

Python
my_dict = {'x': 10, 'y': 20, 'z': 30}
for value in my_dict[1]:
    print(value)
Drag options to blanks, or click blank then click option'
A[]
B.values()
C.items()
D.keys()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using .keys() will give keys, not values.
Using .items() returns key-value pairs, not just values.
3fill in blank
hard

Fix the error in the code to print keys and values.

Python
my_dict = {'name': 'Alice', 'age': 25}
for key, value in my_dict[1]:
    print(key, value)
Drag options to blanks, or click blank then click option'
A.keys()
B.values()
C[]
D.items()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using .keys() or .values() will cause unpacking errors.
Not using any method will cause a runtime error.
4fill in blank
hard

Fill both blanks to create a dictionary of squares for even numbers only.

Python
numbers = [1, 2, 3, 4, 5]
squares = {num: num[1]2 for num in numbers if num [2] 2 == 0}
Drag options to blanks, or click blank then click option'
A**
B%
C//
D+
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using + instead of ** will add instead of square.
Using // instead of % will not correctly check even numbers.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase keys and values greater than 10.

Python
data = {'a': 5, 'b': 15, 'c': 20}
result = [1]: [2] for [3], val in data.items() if val > 10}
Drag options to blanks, or click blank then click option'
Ak.upper()
Bval
Ck
Dv
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using 'v' instead of 'val' causes undefined variable error.
Not using .upper() keeps keys lowercase.

Practice

(1/5)
1. What does the following code do?
for key in my_dict:
easy
A. Iterates over the keys of the dictionary
B. Iterates over the values of the dictionary
C. Iterates over the key-value pairs as tuples
D. Raises a syntax error

Solution

  1. Step 1: Understand the for loop syntax

    The loop uses for key in my_dict, which by default iterates over dictionary keys.
  2. Step 2: Identify what is accessed in each iteration

    Each iteration gives one key from the dictionary, not values or pairs.
  3. Final Answer:

    Iterates over the keys of the dictionary -> Option A
  4. Quick Check:

    for key in dict = keys [OK]
Hint: for key in dict loops over keys only [OK]
Common Mistakes:
  • Thinking it loops over values
  • Confusing keys with key-value pairs
  • Assuming it raises an error
2. Which of the following is the correct syntax to iterate over keys and values in a dictionary my_dict?
easy
A. for key, value in my_dict.keys():
B. for key, value in my_dict:
C. for key in my_dict.values():
D. for key, value in my_dict.items():

Solution

  1. Step 1: Recall dictionary methods for iteration

    To get keys and values, use my_dict.items() which returns key-value pairs.
  2. Step 2: Check syntax correctness

    Only for key, value in my_dict.items(): correctly unpacks keys and values.
  3. Final Answer:

    for key, value in my_dict.items(): -> Option D
  4. Quick Check:

    Use dict.items() for keys and values [OK]
Hint: Use dict.items() to get keys and values together [OK]
Common Mistakes:
  • Using my_dict without .items() for key-value pairs
  • Trying to unpack keys() or values() which return single elements
  • Syntax errors from missing .items()
3. What is the output of this code?
my_dict = {'a': 1, 'b': 2}
for k, v in my_dict.items():
    print(k, v)
medium
A. a 1\nb 2
B. ('a', 1)\n('b', 2)
C. a\nb
D. 1\n2

Solution

  1. Step 1: Understand the loop over items()

    The loop unpacks each key-value pair from my_dict.items().
  2. Step 2: Analyze the print statement

    It prints the key and value separated by space on each line, so output lines are "a 1" and "b 2".
  3. Final Answer:

    a 1\nb 2 -> Option A
  4. Quick Check:

    print(k, v) prints key and value separated by space [OK]
Hint: print(k, v) shows key and value separated by space [OK]
Common Mistakes:
  • Expecting tuples printed instead of separate values
  • Printing only keys or only values
  • Confusing output format with list or tuple
4. Find the error in this code:
my_dict = {'x': 10, 'y': 20}
for key, value in my_dict:
    print(key, value)
medium
A. Dictionary keys cannot be unpacked
B. Incorrect print statement syntax
C. Missing .items() after my_dict
D. No error, code runs fine

Solution

  1. Step 1: Identify the iteration target

    The loop tries to unpack two variables from my_dict directly, which yields only keys.
  2. Step 2: Correct the iteration method

    To unpack key and value, use my_dict.items() instead of just my_dict.
  3. Final Answer:

    Missing .items() after my_dict -> Option C
  4. Quick Check:

    Use my_dict.items() to unpack key, value [OK]
Hint: Use .items() to unpack key and value in loop [OK]
Common Mistakes:
  • Trying to unpack keys only without .items()
  • Assuming dict directly yields key-value pairs
  • Ignoring error message about unpacking
5. Given the dictionary data = {'a': 0, 'b': 2, 'c': 0, 'd': 4}, which code snippet creates a new dictionary with only keys having non-zero values?
hard
A. new_dict = {k: v for k, v in data if v != 0}
B. new_dict = {k: v for k, v in data.items() if v != 0}
C. new_dict = {k: v for k in data.keys() if data[k] != 0}
D. new_dict = {k: v for v, k in data.items() if v != 0}

Solution

  1. Step 1: Understand dictionary comprehension with condition

    We want to keep only items where value is not zero, so use if v != 0 in comprehension.
  2. Step 2: Check correct unpacking and syntax

    new_dict = {k: v for k, v in data.items() if v != 0} correctly unpacks key and value from data.items() and filters by value.
  3. Final Answer:

    new_dict = {k: v for k, v in data.items() if v != 0} -> Option B
  4. Quick Check:

    Use dict.items() and filter with if condition [OK]
Hint: Use dict.items() with if condition in comprehension [OK]
Common Mistakes:
  • Forgetting .items() when unpacking key and value
  • Swapping key and value in unpacking
  • Using keys() without accessing values