Unpacking Operator in Python: Simplify Your Code with These Tricks, Including Dictionary Merging and String Unpacking

Jahidul Hasan Hemal
5 min readApr 17, 2023

--

Art using AI(Midjourney)

Unpacking operator in Python is a special operator that allows you to unpack the values from an iterable object into separate variables. This can be useful when you want to pass multiple arguments to a function or when you want to iterate over an iterable object and assign each value to a separate variable.

There are two types of unpacking operators in Python:

  • The asterisk (*) operator is used to unpack a list or tuple.
  • The double asterisk (**) operator is used to unpack a dictionary.

Unpacking Lists

The unpacking operator can be used to unpack the contents of a list into individual variables. Let’s look at an example:

numbers = [1, 2, 3]
a, b, c = numbers
print(a) # Output: 1
print(b) # Output: 2
print(c) # Output: 3

In this example, we create a list called numbers with three elements. We then use the unpacking operator to assign each element of the list to a separate variable. The output of the code is the values of the three variables, which are 1, 2, and 3.

Unpacking Tuples

The unpacking operator can also be used to unpack the contents of a tuple into individual variables. Here’s an example:

coordinates = (10, 20, 30)
x, y, z = coordinates
print(x) # Output: 10
print(y) # Output: 20
print(z) # Output: 30

In this example, we create a tuple called coordinates with three elements. We then use the unpacking operator to assign each element of the tuple to a separate variable. The output of the code is the values of the three variables, which are 10, 20, and 30.

Unpacking Dictionaries

The unpacking operator can also be used to unpack the contents of a dictionary into individual variables. Here’s an example:

person = {"name": "John", "age": 25, "country": "USA"}
name, age, country = person.values()
print(name) # Output: John
print(age) # Output: 25
print(country) # Output: USA

In this example, we create a dictionary called person with three key-value pairs. We then use the values() method to get the values of the dictionary and use the unpacking operator to assign each value to a separate variable. The output of the code is the values of the three variables, which are John, 25, and USA.

String Unpacking

The unpacking operator can also be used to unpack a string into individual variables. Here’s an example:

name = "John"
a, b, c, d = name
print(a) # Output: J
print(b) # Output: o
print(c) # Output: h
print(d) # Output: n

In this example, we create a string called name with four characters. We then use the unpacking operator to assign each character of the string to a separate variable. The output of the code is the values of the four variables, which are J, o, h, and n.

The unpacking operator in Python can be used to achieve a number of tricks that can simplify your code and make it more efficient. Here are some examples of how you can use the unpacking operator to achieve some of these tricks:

  1. Swapping Variables

One common trick that you can achieve using the unpacking operator is to swap the values of two variables. Here’s an example:

a = 5
b = 10
a, b = b, a
print(a) # Output: 10
print(b) # Output: 5

In this example, we use the unpacking operator to swap the values of the a and b variables in one line. This is much simpler than using a temporary variable to store the value of a before swapping it with b.

2. Creating Subsets

Another useful trick that you can achieve using the unpacking operator is to create subsets of a list or tuple. Here’s an example:

numbers = [1, 2, 3, 4, 5]
first, *rest = numbers
print(first) # Output: 1
print(rest) # Output: [2, 3, 4, 5]

In this example, we use the unpacking operator to assign the first element of the numbers list to the first variable and the rest of the elements to the rest variable. This allows us to easily create subsets of a list without having to manually slice it.

3. Concatenating Lists

The unpacking operator can also be used to concatenate multiple lists into a single list. Here’s an example:

list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = [*list1, *list2]
print(combined) # Output: [1, 2, 3, 4, 5, 6]

In this example, we use the unpacking operator to concatenate the list1 and list2 lists into a single list called combined. This is much simpler than using the extend() method or a loop to append each element of the second list to the first list.

4. Passing Arguments to Functions

The unpacking operator can also be used to pass a variable number of arguments to a function. Here’s an example:

def add_numbers(*numbers):
total = 0
for number in numbers:
total += number
return total
numbers = [1, 2, 3, 4, 5]
print(add_numbers(*numbers)) # Output: 15

In this example, we define a function called add_numbers that takes a variable number of arguments. We then use the unpacking operator to pass the numbers list as arguments to the function. This allows us to easily pass a variable number of arguments to a function without having to manually specify each argument.

5. Merging two dictionaries

dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged = {**dict1, **dict2}
print(merged) # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

In this example, we use the unpacking operator {**dict1, **dict2} to merge the dict1 and dict2 dictionaries into a new dictionary called merged. The ** syntax is used to unpack the dictionaries and combine them into a single dictionary. This is a quick and easy way to merge dictionaries in Python.

It's worth noting that if there are any overlapping keys between the dictionaries being merged, the value of the second dictionary will overwrite the value of the first dictionary.

Here’s my simple tick which I use always to get all the characters from a string.

string1 = "Hello World"
characters = [*string1]
print(characters)

Output:

['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

The unpacking operator in Python is a powerful tool that can be used to achieve a number of tricks that can simplify your code and make it more efficient. By mastering the unpacking operator, you can become a more efficient and effective Python programmer.

--

--

Jahidul Hasan Hemal
Jahidul Hasan Hemal

Written by Jahidul Hasan Hemal

A goddamn marvel of modern science. An open-source enthusiast and an optimist who loves to read and watch movies and is trying to learn how to write.

No responses yet