Bird
Raised Fist0
Pythonprogramming~5 mins

Multiple return values 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: Multiple return values
O(n)
Understanding Time Complexity

We want to see how the time a function takes changes when it returns more than one value.

Does returning multiple values make the function slower as input grows?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

def min_max(numbers):
    minimum = numbers[0]
    maximum = numbers[0]
    for num in numbers:
        if num < minimum:
            minimum = num
        elif num > maximum:
            maximum = num
    return minimum, maximum

This function finds the smallest and largest numbers in a list and returns both.

Identify Repeating Operations
  • Primary operation: One loop through the list of numbers.
  • How many times: Once for each number in the list.
How Execution Grows With Input

As the list gets bigger, the function checks each number once.

Input Size (n)Approx. Operations
10About 10 checks
100About 100 checks
1000About 1000 checks

Pattern observation: The work grows directly with the number of items.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line with the input size.

Common Mistake

[X] Wrong: "Returning two values makes the function twice as slow."

[OK] Correct: Returning multiple values just packages results together; it does not add extra loops or checks.

Interview Connect

Understanding how returning multiple values affects time helps you explain your code clearly and confidently in interviews.

Self-Check

"What if the function returned the minimum, maximum, and the average? How would the time complexity change?"

Practice

(1/5)
1.

What does a Python function return when it has multiple values separated by commas in the return statement?

easy
A. A tuple containing all the returned values
B. A list containing all the returned values
C. Only the first value is returned
D. A dictionary with values as keys

Solution

  1. Step 1: Understand Python return behavior

    When multiple values are separated by commas in a return statement, Python groups them into a tuple automatically.
  2. Step 2: Identify the returned data type

    The returned object is a tuple containing all the values, not a list or dictionary.
  3. Final Answer:

    A tuple containing all the returned values -> Option A
  4. Quick Check:

    Multiple values returned = tuple [OK]
Hint: Multiple returns become a tuple automatically [OK]
Common Mistakes:
  • Thinking it returns a list
  • Assuming only one value is returned
  • Confusing tuple with dictionary
2.

Which of the following is the correct syntax to return multiple values a and b from a function?

easy
A. return a, b
B. return {a: b}
C. return [a, b]
D. return {a, b}

Solution

  1. Step 1: Review return syntax for multiple values

    Python allows returning multiple values separated by commas without parentheses.
  2. Step 2: Compare options

    return a, b is correct and returns a tuple. return {a: b} returns a dictionary, return [a, b] returns a list, and return {a, b} returns a set, which are not typical for multiple return values.
  3. Final Answer:

    return a, b -> Option A
  4. Quick Check:

    Comma-separated values return tuple [OK]
Hint: Use commas without brackets to return multiple values [OK]
Common Mistakes:
  • Using brackets unnecessarily
  • Returning list or set instead of tuple
  • Syntax errors with braces
3.

What will be the output of this code?

def get_values():
    return 5, 10

x, y = get_values()
print(x + y)
medium
A. 510
B. TypeError
C. 15
D. None

Solution

  1. Step 1: Understand function return and unpacking

    The function returns two values 5 and 10 as a tuple. Variables x and y capture these values separately.
  2. Step 2: Calculate the sum

    Adding x and y means 5 + 10 which equals 15.
  3. Final Answer:

    15 -> Option C
  4. Quick Check:

    5 + 10 = 15 [OK]
Hint: Unpack returned tuple into variables to use values [OK]
Common Mistakes:
  • Concatenating numbers as strings
  • Forgetting to unpack tuple
  • Expecting a list instead of tuple
4.

Find the error in this code snippet:

def split_name(full_name):
    first, last = full_name.split()
    return first, last

f, l, m = split_name('John Doe')
medium
A. Missing return statement
B. Too many variables to unpack returned values
C. Function split_name returns a list, not tuple
D. split() method does not work on strings

Solution

  1. Step 1: Analyze returned values and unpacking

    The function returns two values: first and last name. The caller tries to unpack into three variables.
  2. Step 2: Identify mismatch in unpacking

    Trying to assign two returned values to three variables causes a ValueError due to too many variables to unpack.
  3. Final Answer:

    Too many variables to unpack returned values -> Option B
  4. Quick Check:

    Returned 2 values but unpacked into 3 variables [OK]
Hint: Match number of variables to returned values [OK]
Common Mistakes:
  • Unpacking into more variables than returned
  • Assuming split returns tuple always
  • Ignoring ValueError messages
5.

Given this function that returns multiple values, how can you modify it to return the sum and product of a list of numbers?

def calculate(numbers):
    # Your code here

result = calculate([1, 2, 3, 4])
print(result)

Choose the correct implementation to return both sum and product.

hard
A. def calculate(numbers): total = sum(numbers) product = 0 for n in numbers: product += n return total, product
B. def calculate(numbers): return sum(numbers) + product(numbers)
C. def calculate(numbers): return [sum(numbers), product(numbers)]
D. def calculate(numbers): total = sum(numbers) product = 1 for n in numbers: product *= n return total, product

Solution

  1. Step 1: Calculate sum and product correctly

    Sum is calculated using built-in sum(). Product requires initializing to 1 and multiplying each number.
  2. Step 2: Return both values as multiple return values

    Return total and product separated by comma to return a tuple.
  3. Final Answer:

    def calculate(numbers): total = sum(numbers) product = 1 for n in numbers: product *= n return total, product -> Option D
  4. Quick Check:

    Return sum and product as tuple [OK]
Hint: Return sum and product separated by comma [OK]
Common Mistakes:
  • Using product = 0 and adding instead of multiplying
  • Trying to add sum and product instead of returning both
  • Returning list instead of tuple