Bird
Raised Fist0
Pythonprogramming~10 mins

Creating dictionary from two sequences in Python - Interactive 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 create a dictionary by pairing keys and values from two lists.

Python
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = dict(zip(keys, [1]))
print(d)
Drag options to blanks, or click blank then click option'
Avalues
Bkeys
Crange(3)
Dlist
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using keys instead of values in zip.
Using range instead of the values list.
2fill in blank
medium

Complete the code to create a dictionary from two lists using a dictionary comprehension.

Python
keys = ['x', 'y', 'z']
values = [10, 20, 30]
d = {k: [1] for k, v in zip(keys, values)}
print(d)
Drag options to blanks, or click blank then click option'
Ak
Bvalues
Ckeys
Dv
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using the key variable as the value.
Using the whole list instead of the variable.
3fill in blank
hard

Fix the error in the code to correctly create a dictionary from two lists.

Python
keys = ['name', 'age', 'city']
values = ['Alice', 30, 'NY']
d = dict([1](keys, values))
print(d)
Drag options to blanks, or click blank then click option'
Azip
Bmap
Cset
Dlist
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using map instead of zip.
Using list or set which do not pair elements.
4fill in blank
hard

Fill both blanks to create a dictionary from two lists where keys are uppercase.

Python
keys = ['a', 'b', 'c']
values = [1, 2, 3]
d = {k[1]: v for k, v in zip(keys, [2])}
print(d)
Drag options to blanks, or click blank then click option'
A.upper()
Bvalues
Ckeys
D.lower()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using .lower() instead of .upper().
Zipping keys with keys instead of values.
5fill in blank
hard

Fill all three blanks to create a dictionary from two lists, including only pairs where value is greater than 10.

Python
keys = ['p', 'q', 'r', 's']
values = [5, 15, 25, 8]
d = {k[1]: v for k, v in zip([2], [3]) if v > 10}
print(d)
Drag options to blanks, or click blank then click option'
A.upper()
Bkeys
Cvalues
D.lower()
Attempts:
3 left
๐Ÿ’ก Hint
Common Mistakes
Using .lower() instead of .upper().
Swapping keys and values in zip.
Not filtering values greater than 10.

Practice

(1/5)
1. What does the Python function zip() do when used with two sequences?
easy
A. Sorts both sequences in ascending order
B. Adds elements of both sequences together
C. Removes duplicate elements from both sequences
D. Pairs elements from both sequences into tuples

Solution

  1. Step 1: Understand the purpose of zip()

    The zip() function pairs elements from two sequences by their positions, creating tuples.
  2. Step 2: Recognize the output format

    Each tuple contains one element from each sequence, matched by index.
  3. Final Answer:

    Pairs elements from both sequences into tuples -> Option D
  4. Quick Check:

    zip() pairs elements = C [OK]
Hint: Remember zip pairs items by position from sequences [OK]
Common Mistakes:
  • Thinking zip adds or subtracts elements
  • Assuming zip sorts sequences
  • Believing zip removes duplicates
2. Which of the following is the correct syntax to create a dictionary from two lists keys and values?
easy
A. dict(zip(keys, values))
B. dict(keys, values)
C. zip(dict(keys), dict(values))
D. dict(keys + values)

Solution

  1. Step 1: Understand dict() and zip() usage

    The dict() function can convert an iterable of key-value pairs into a dictionary. zip(keys, values) creates these pairs.
  2. Step 2: Check each option's correctness

    dict(zip(keys, values)) correctly uses dict(zip(keys, values)). Others misuse dict() or zip() syntax.
  3. Final Answer:

    dict(zip(keys, values)) -> Option A
  4. Quick Check:

    dict(zip(keys, values)) = B [OK]
Hint: Use dict(zip(keys, values)) to combine lists into dictionary [OK]
Common Mistakes:
  • Trying dict(keys, values) directly
  • Using zip on dict() results
  • Adding lists inside dict()
3. What is the output of this code?
keys = ['a', 'b', 'c']
values = [1, 2, 3]
result = dict(zip(keys, values))
print(result)
medium
A. {'a': 1, 'b': 2, 'c': 3}
B. {1: 'a', 2: 'b', 3: 'c'}
C. [('a', 1), ('b', 2), ('c', 3)]
D. Error: cannot convert zip object to dict

Solution

  1. Step 1: Understand zip pairing

    zip(keys, values) pairs 'a' with 1, 'b' with 2, and 'c' with 3.
  2. Step 2: Convert pairs to dictionary

    dict() converts these pairs into key-value pairs in a dictionary.
  3. Final Answer:

    {'a': 1, 'b': 2, 'c': 3} -> Option A
  4. Quick Check:

    dict(zip(keys, values)) = {'a': 1, 'b': 2, 'c': 3} [OK]
Hint: zip pairs keys and values; dict converts pairs to dictionary [OK]
Common Mistakes:
  • Confusing keys and values order
  • Expecting list instead of dict
  • Thinking zip returns dict directly
4. The following code throws an error. What is the problem?
keys = ['x', 'y']
values = [10, 20, 30]
result = dict(zip(keys, values))
print(result)
medium
A. dict() cannot convert zip object
B. zip() cannot be used with lists
C. There is no error; code runs fine
D. The lists have different lengths causing an error

Solution

  1. Step 1: Check list lengths and zip behavior

    zip() pairs elements until the shortest list ends, so no error occurs even if lengths differ.
  2. Step 2: Confirm dict() accepts zip object

    dict() can convert the zip object to a dictionary without error.
  3. Final Answer:

    There is no error; code runs fine -> Option C
  4. Quick Check:

    zip truncates to shortest list; dict accepts zip [OK]
Hint: zip stops at shortest list; no error if lengths differ [OK]
Common Mistakes:
  • Assuming zip requires equal length lists
  • Thinking dict() can't convert zip
  • Expecting error due to list length mismatch
5. Given two lists keys = ['name', 'age', 'city'] and values = ['Alice', '', None], which dictionary comprehension correctly creates a dictionary excluding keys with empty or None values?
hard
A. {k: v for k, v in zip(keys, values)}
B. {k: v for k, v in zip(keys, values) if v}
C. {k: v for k, v in zip(keys, values) if v != ''}
D. {k: v for k, v in zip(keys, values) if v is not None}

Solution

  1. Step 1: Understand filtering with dictionary comprehension

    We want to exclude keys where values are empty strings or None. The condition if v filters out falsy values like '' and None.
  2. Step 2: Analyze each option's filter

    {k: v for k, v in zip(keys, values) if v} uses if v which excludes both '' and None. {k: v for k, v in zip(keys, values) if v is not None} excludes only None, {k: v for k, v in zip(keys, values) if v != ''} excludes only '', and {k: v for k, v in zip(keys, values)} includes all.
  3. Final Answer:

    {k: v for k, v in zip(keys, values) if v} -> Option B
  4. Quick Check:

    Filter falsy values with if v = D [OK]
Hint: Use if v to exclude empty or None values in comprehension [OK]
Common Mistakes:
  • Filtering only None or only empty string
  • Not filtering any values
  • Using incorrect syntax for filtering