Tuple unpacking with *variable notation

It is fairly common to see tuple unpacking in function with arguments specified as *args and **kwargs. In the example below we look at tuple unpacking in a different setting beyond function arguments functions.

Suppose we have a range of numbers and wish to only retain the first and second as individual variables and the rest into one variable, tuple unpacking is the right tool for this

first, second, *remaining = range(7)
print("The first value is:", first, "The second value is:", second)
print("The remaining values are:", remaining)

The output is:

The first value is: 0 The second value is: 1 The remaining values are: [2, 3, 4, 5, 6]

Notice that the output of the remaining range are stored in a list which can iterated and manipulated.