How to use tuples

Create a tuple

Tuples are ordered and immutable. Parentheses improve readability; a one-item tuple requires a trailing comma.

point = (4, 7)
single = ("only",)
print(point[0], point[-1])
print(type(single))

Unpack values

Unpacking assigns tuple items to names. A starred name can capture the middle values when lengths vary.

name, score = ("Ada", 95)
first, *middle, last = (1, 2, 3, 4)
print(name, score)
print(first, middle, last)

Return multiple results

A comma-separated return value is a tuple. Callers can keep the tuple or unpack it immediately.

def minimum_maximum(values):
    return min(values), max(values)

low, high = minimum_maximum([8, 2, 10])
print(low, high)

Choose tuple or list

  • Use a tuple for a fixed-position record such as an (x, y) coordinate.
  • Use a list when items need to be added, removed, sorted, or replaced.
  • A tuple can be a dictionary key only when all of its items are hashable.