You are currently viewing 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.

Advertisements

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.

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]

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']

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

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}

5. Unpacking Tuples Using Lambda Function

You can also use a lambda function to unpack tuples in Python. For example, you define a lambda function that 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

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