You are here

Tuples as return values

8 September, 2015 - 10:43

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)>>> print t(2, 1)

Or use tuple assignment to store the elements separately:

>>> quot, rem = divmod(7, 3)>>> print quot2>>> print rem1

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.