Skip to main content
Engineering LibreTexts

12.3: Tuples as return values

  • Page ID
  • Strictly speaking, a function can only return one value, but if the value is a tuple, the effect is the same as returning multiple values. For example, if you want to divide two integers and compute the quotient and remainder, it is inefficient to compute x//y and then x%y. It is better to compute them both at the same time.

    The built-in function divmod takes two arguments and returns a tuple of two values, the quotient and remainder. You can store the result as a tuple:

    >>> t = divmod(7, 3)
    >>> t
    (2, 1)

    Or use tuple assignment to store the elements separately:

    >>> quot, rem = divmod(7, 3)
    >>> quot
    >>> rem

    Here is an example of a function that returns a tuple:

    def min_max(t):
        return min(t), max(t)

    max and min are built-in functions that find the largest and smallest elements of a sequence. min_max computes both and returns a tuple of two values.

    • Was this article helpful?