Unpacking a Tuple
When we create a tuple, we normally assign values to it. This is called "packing" a tuple:
But, in Python, we are also allowed to extract the values back into variables. This is called "unpacking":
Example
Unpacking a tuple:
fruits = ("apple", "banana", "cherry")
(green, yellow, red) = fruits
print(green)
print(yellow)
print(red)
Try it Yourself »
Note: The number of variables must match the number of values in the tuple, if not, you must use an asterisk to collect the remaining values as a list.
Using Asterisk*
If the number of variables is less than the number of values, you can add an * to the variable name and the values will be assigned to the variable as a list:
Example
Assign the rest of the values as a list called "red":
fruits = ("apple", "banana", "cherry", "strawberry", "raspberry")
(green, yellow, *red) = fruits
print(green)
print(yellow)
print(red)
Try it Yourself »
If the asterisk is added to another variable name than the last, Python will assign values to the variable until the number of values left matches the number of variables left.
Example
Add a list of values the "tropic" variable:
fruits = ("apple", "mango", "papaya", "pineapple", "cherry")
(green, *tropic, red) = fruits
print(green)
print(tropic)
print(red)
Try it Yourself »
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
Python Tuples In python tuples are used to store immutable objects. Python Tuples are very similar to lists except to some situations. Python tuples are immutable means that they can not be modified in whole program.
Packing and Unpacking a Tuple: In Python, there is a very powerful tuple assignment feature that assigns the right-hand side of values into the left-hand side. In another way, it is called unpacking of a tuple of values into a variable. In packing, we put values into a new tuple while in unpacking we extract those values into a single variable.
Example 1
Python3
a = ("MNNIT Allahabad", 5000, "Engineering")
(college, student, type_ofcollege) = a
print(college)
print(student)
print(type_ofcollege)
Output:
MNNIT Allahabad 5000 EngineeringNOTE : In unpacking of tuple number of variables on left-hand side should be equal to number of values in
given tuple a.
Python uses a special syntax to pass optional arguments (*args) for tuple unpacking. This means that there can be many number of arguments in place of (*args) in python. All values will be assigned to every variable on the left-hand side and all remaining values will be assigned to *args .For better understanding consider the following code.
Example 2
Python3
x, *y, z = (10, "Geeks ", " for ", "Geeks ", 50)
print(x)
print(y)
print(z)
x, y, *z = (10, "Geeks ", " for ", "Geeks ", 50)
print(x)
print(y)
print(z)
Output:
10 ['Geeks ', ' for ', 'Geeks '] 50 10 Geeks [' for ', 'Geeks ', 50]In python tuples can be unpacked using a function in function tuple is passed and in function values are unpacked into normal variable. Consider the following code for better understanding.
Example 3 :
Python3
def result(x, y):
return x * y
print (result(10, 100))
z = (10, 100)
print (result(*z))