Built with Tutify.io

    AIStudyLabs

    Python Tuple Unpacking with Examples

    Python Tuple Unpacking with Examples

    In Python, Tuple unpacking is a feature that allows us to assign values to multiple variables in a single statement. It works by unpacking a sequence (e.g., a tuple, list, or string) into individual variables. Unpacking is not limited to tuples, you can also use it to unpack lists, strings, and other iterable objects. Unpacking is a powerful feature in Python that can make your code more concise and readable.

    You can unpack tuples in Python by using many ways, for example, using the * unpacking, dictionary, lambda, and list comprehension. In this article, I will explain tuple unpacking by using all these methods with examples.

    Related: In Python, you can also unpack the list.

    <a id="h-1-quick-examples-of-tuple-unpacking"></a>

    1. Quick Examples of Tuple Unpacking

    If you are in a hurry, below are some quick examples of Python tuple unpacking.

    
    # Quick examples of tuple unpacking
    
    # Example 1: Using * unpacking method
    tuples = ('Spark', 'Python', 'pandas', 'Java')
    list1 = [*tuples,]
    
    # Example 2: Unpacking tuples as arguments
    def technology(courses, fees, duration):
        print(courses)
        print(fees)
        print(duration)    
    tuples = ('Python', 25000, '50days')
    technology(*tuples)
    
    # Example 3: Unpacking tuples as a dictionary
    tuples = ('Python', '50days', 25000)
    dictionary = dict(zip(('courses', 'duration', 'fees'), tuples))
    
    # Example 4: Unpacking tuples as a dictionary object
    tuples = ('Python', '50days', 25000)
    dictionary = {}
    dictionary['courses'],dictionary['duration'],dictionary['fees'] = tuples
    
    # Example 5: Unpacking tuples using lambda function
    tuples = (5, 10)
    result = (lambda x,y: x + y)(*tuples)
    
    # Example 6: Unpacking nested tuples 
    # Using list comprehension
    nested_tuple = ((2, 4), (6, 8), (10, 12))
    result = [x + y for x, y in nested_tuple]
    
    # Example 7: Using list comprehension
    tuples = ((1, 3, 5), (7, 9, 11), (13, 15, 17))
    result = [(x,y,z) for x,y,z in tuples]
    

    <a id="h-2-using-unpacking-method"></a>

    2. Using * Unpacking Method

    You can use unpack operator ***** on a tuple to extract the individual elements from a tuple and assign its elements to a list by enclosing the tuple in square brackets [] and separating the elements with commas. For example, use the * operator to unpack the elements of the tuples and assign them to the list list1. The resulting list contains the same elements as the original tuple, in the same order.

    
    # Using * unpacking method
    tuples = ('Spark', 'Python', 'pandas', 'Java')
    # convert tuple into list
    list1 = [*tuples,]
    print(list1)
    
    # Output
    # ['Spark', 'Python', 'pandas', 'Java']
    

    <a id="h-3-unpacking-tuple-as-arguments"></a>

    3. Unpacking Tuple as Arguments

    You can unpack tuple and pass the elements of a tuple as arguments to a function in Python. This is a convenient way to pass multiple arguments to a function without having to manually specify each argument.

    For example, In the below code snippet we define a function technology that takes three arguments courses, fees, and duration. And, create a tuple tuples with three elements and use tuple unpacking with the * operator to pass the elements of the tuple as arguments to the function.

    
    # Unpacking tuple as arguments
    def technology(courses, fees, duration):
        print(courses)
        print(fees)
        print(duration)
        
    tuples = ('Python', 25000, '50days')
    technology(*tuples)
    
    # Output
    # Python
    # 25000
    # 50days
    

    <a id="h-4-unpacking-tuples-as-dictionary"></a>

    4. Unpacking Tuples as Dictionary

    To unpack a tuple as a dictionary, you can use the dict() constructor along with the zip() function to create a dictionary from the key-value pairs generated by the zip() function.

    For example, let's take tuple with three elements, and create a dictionary dictionary with keys courses, fees, and duration corresponding to the elements of the tuple. First, use the zip() function to create a sequence of key-value pairs by matching each element of the tuple with a corresponding key. Then, you use the dict() constructor to convert the sequence of key-value pairs into a dictionary.

    
    # Unpacking tuples as dictionary
    tuples = ('Python', '50days', 25000)
    dictionary = dict(zip(('courses', 'duration', 'fees'), tuples))
    print(dictionary)
    
    # Output
    # {'courses': 'Python', 'duration': '50days', 'fees': 25000}
    

    Follow the other example of unpacking a tuple as a dictionary object.

    
    # Unpacking tuples as dictionary object
    tuples = ('Python', '50days', 25000)
    
    dictionary = {}
    dictionary['courses'],dictionary['duration'],dictionary['fees'] = tuples
    print(dictionary)
    
    # Output
    # {'courses': 'Python', 'duration': '50days', 'fees': 25000}
    

    <a id="h-5-unpacking-tuples-using-lambda-function"></a>

    5. Unpacking Tuples Using Lambda Function

    You can also use a lambda function to unpack tuples in Python. For example, you define a lambda functionthat takes two arguments x and y, and returns their sum. Use the * operator to unpack the tuple and pass their contents as arguments to the lambda function. The result is the sum of the two values in the tuple, which is 15.

    
    # Unpacking tuples using lambda function
    tuples = (5, 10)
    result = (lambda x,y: x + y)(*tuples)
    print(result)
    
    # Output
    # 15
    

    <a id="h-6-unpacking-nested-tuples-using-list-comprehension"></a>

    6. Unpacking Nested Tuples Using List Comprehension

    You can also use list comprehension to unpack nested tuples in Python. For example, create a nested tuple with three tuples, each containing two values. You can use a list comprehension to iterate over each tuple in the nested_tuple, unpack the values using the syntax x, and y, and add them together to create a new list with the resulting values.

    
    # Unpacking nested tuples 
    # Using list comprehension
    nested_tuple = ((2, 4), (6, 8), (10, 12))
    result = [x + y for x, y in nested_tuple]
    print(result)
    
    # Output
    # [6, 14, 22]
    

    Follow the other example of a list comprehension to unpack nested tuples in Python.

    
    # Unpacking nested tuples 
    # Using list comprehension
    tuples = ((1, 3, 5), (7, 9, 11), (13, 15, 17))
    result = [(x,y,z) for x,y,z in tuples]
    print(result)
    
    # Output
    # [(1, 3, 5), (7, 9, 11), (13, 15, 17)]
    

    Conclusion

    In this article, I have explained python tuple unpacking by using * unpacking, dictionary, lambda, and list comprehension with examples.

    Happy Learning !!

    Related Articles

    References