Packing and unpacking in python w3schools


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

  • Read
  • Discuss
  • 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) =

    print(college)

    print(student)

    print(type_ofcollege)

    Output:

    MNNIT Allahabad
    5000
    Engineering

    NOTE : 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))


    What is packing and unpacking in Python?

    Unpacking in Python refers to an operation that consists of assigning an iterable of values to a tuple (or list ) of variables in a single assignment statement. As a complement, the term packing can be used when we collect several values in a single variable using the iterable unpacking operator, * .

    What is packing and unpacking?

    The pack function takes a list of values to be packed as a second argument and returns a scalar character string containing the packed values. The unpack function takes a character string containing the values to be unpacked as a second argument, and returns a list of individual values extracted from the string.

    What is packing in Python?

    Packing is a technique in python with which we put several values into a single iterator. If we talk of packing in literal terms, Just like we pack certain items into a box in the real world, In python we pack certain variables in a single iterable.

    What is tuple packing and unpacking in Python?

    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.