Bird
Raised Fist0
Pythonprogramming~20 mins

Tuple unpacking in Python - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
๐ŸŽ–๏ธ
Tuple Unpacking Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
Output of nested tuple unpacking
What is the output of this Python code?
Python
data = (1, (2, 3), 4)
a, (b, c), d = data
print(a, b, c, d)
A1 (2, 3) 4
B1 2 3 4
C1 2 (3, 4)
DError: cannot unpack
Attempts:
2 left
๐Ÿ’ก Hint
Remember that nested tuples can be unpacked by matching the structure.
โ“ Predict Output
intermediate
2:00remaining
Unpacking with star expression
What will be printed by this code?
Python
t = (10, 20, 30, 40, 50)
a, *b, c = t
print(a, b, c)
A10 [20, 30, 40] 50
B10 (20, 30, 40) 50
CError: cannot unpack more than one star expression
D10 [20, 30, 40, 50] None
Attempts:
2 left
๐Ÿ’ก Hint
The star expression collects all middle elements as a list.
๐Ÿง  Conceptual
advanced
2:00remaining
Error type from wrong unpacking
What error does this code raise when run?
Python
x, y = (1, 2, 3)
ATypeError: cannot unpack non-iterable int object
BNo error, x=1, y=2
CSyntaxError: invalid syntax
DValueError: too many values to unpack (expected 2)
Attempts:
2 left
๐Ÿ’ก Hint
Check how many values are on the right vs variables on the left.
โ“ Predict Output
advanced
2:00remaining
Unpacking with nested star expressions
What is the output of this code?
Python
a, *b, (c, d) = (1, 2, 3, (4, 5))
print(a, b, c, d)
ASyntaxError: multiple star expressions
B1 [2, 3, (4, 5)] None None
C1 [2, 3] 4 5
D1 [2] 3 (4, 5)
Attempts:
2 left
๐Ÿ’ก Hint
The star expression collects all elements except first and last, last is a tuple unpacked into c and d.
โ“ Predict Output
expert
3:00remaining
Complex unpacking with multiple levels
What will be the output of this code?
Python
data = (1, (2, (3, 4)), 5)
(x, (y, (z, w)), v) = data
print(x, y, z, w, v)
A1 2 3 4 5
B1 (2, (3, 4)) 5
CValueError: too many values to unpack
D1 2 (3, 4) 5
Attempts:
2 left
๐Ÿ’ก Hint
Match each variable to the corresponding nested tuple element.

Practice

(1/5)
1. What does tuple unpacking do in Python?
a, b = (1, 2)
easy
A. Raises an error because of wrong syntax
B. Creates a tuple with elements a and b
C. Swaps the values of a and b
D. Assigns 1 to a and 2 to b in one line

Solution

  1. Step 1: Understand tuple unpacking syntax

    The code a, b = (1, 2) assigns the first value 1 to variable a and the second value 2 to variable b.
  2. Step 2: Confirm the assignment

    After unpacking, a equals 1 and b equals 2, which matches the tuple elements.
  3. Final Answer:

    Assigns 1 to a and 2 to b in one line -> Option D
  4. Quick Check:

    Tuple unpacking = Assign values [OK]
Hint: Match variables to tuple elements in order [OK]
Common Mistakes:
  • Thinking it creates a tuple instead of unpacking
  • Confusing unpacking with swapping
  • Expecting an error from correct syntax
2. Which of the following is the correct syntax for tuple unpacking in Python?
easy
A. a, b = [1, 2
B. a, b = (1, 2)
C. (a, b = 1, 2
D. a = (1, 2) = b

Solution

  1. Step 1: Check each option for valid unpacking syntax

    a, b = [1, 2 "a, b = [1, 2" is missing closing bracket, syntax error. (a, b = 1, 2 "(a, b = 1, 2" has mismatched parentheses, syntax error. a = (1, 2) = b "a = (1, 2) = b" is invalid syntax. Only B is correct.
  2. Step 2: Identify the best tuple unpacking syntax

    a, b = (1, 2) clearly shows tuple unpacking with a tuple on the right and variables on the left, which is the most correct and clear syntax.
  3. Final Answer:

    a, b = (1, 2) -> Option B
  4. Quick Check:

    Tuple unpacking syntax = a, b = (1, 2) [OK]
Hint: Look for variables on left, tuple on right [OK]
Common Mistakes:
  • Forgetting closing bracket when using lists
  • Mismatched parentheses on left side
  • Using invalid assignment chaining
3. What is the output of this code?
point = (4, 5)
x, y = point
print(x + y)
medium
A. 9
B. (4, 5)
C. 45
D. Error

Solution

  1. Step 1: Unpack the tuple into variables

    The tuple (4, 5) is unpacked into x = 4 and y = 5.
  2. Step 2: Calculate the sum of x and y

    Adding x + y gives 4 + 5 = 9.
  3. Final Answer:

    9 -> Option A
  4. Quick Check:

    4 + 5 = 9 [OK]
Hint: Add unpacked variables directly [OK]
Common Mistakes:
  • Printing the tuple instead of sum
  • Concatenating numbers as strings
  • Expecting a syntax error
4. Find the error in this tuple unpacking code:
data = (1, 2, 3)
a, b = data
print(a, b)
medium
A. Too many values to unpack
B. Not enough values to unpack
C. Syntax error in assignment
D. No error, code runs fine

Solution

  1. Step 1: Count values and variables

    The tuple data has 3 values but only 2 variables a and b are on the left side.
  2. Step 2: Understand unpacking rules

    Python requires the number of variables to match the number of values unless using a starred expression. Here, 3 values cannot fit into 2 variables, causing a ValueError.
  3. Final Answer:

    Too many values to unpack -> Option A
  4. Quick Check:

    Mismatch in values and variables = Error [OK]
Hint: Count variables and values before unpacking [OK]
Common Mistakes:
  • Ignoring value-variable count mismatch
  • Expecting Python to auto-fill missing variables
  • Using wrong error type
5. Given a list of tuples representing points, how do you unpack and sum all x and y values?
points = [(1, 2), (3, 4), (5, 6)]
total_x = 0
total_y = 0
for point in points:
    # Fill in unpacking here
    total_x += x
    total_y += y
print(total_x, total_y)

Which line correctly unpacks the tuple inside the loop?
hard
A. (x, y) = [point]
B. point = x, y
C. x, y = point
D. x, y = [point]

Solution

  1. Step 1: Understand the loop variable

    Each point is a tuple like (1, 2). To access x and y, unpack it into variables x and y.
  2. Step 2: Choose correct unpacking syntax

    The correct syntax is x, y = point. This assigns the first element to x and second to y for each tuple in the list.
  3. Final Answer:

    x, y = point -> Option C
  4. Quick Check:

    Unpack tuple with x, y = point [OK]
Hint: Unpack tuple directly with x, y = point [OK]
Common Mistakes:
  • Assigning tuple to variables in wrong order
  • Using list brackets incorrectly
  • Trying to unpack list instead of tuple