5 Uses of Asterisks in Python

Yang Zhou
Yang Zhou
Oct 25 · 3 min read
5 Uses of Asterisks in Python
5 Uses of Asterisks in Python
Starry Night by Vincent van Gogh

The asterisk, which is known as the multiplication operator, is a commonly used symbol in all programs. It could be enough for us to use it just as a multiplication operator. However, if you are serious about to become a Python expert. It’s time to know how useful and powerful the asterisk is in Python.

This post will explain 5 usage scenarios of asterisks with most understandable examples, from elementary to profound.

Use 1: Multiplication or Exponentiation Operator

The simplest use is to exploit asterisks as infix operators:

  • Single for the multiplication operation.
  • Double for the exponentiation operation.
>>> 2*3
>>> 6
>>> 2**3
>>> 8

Use 2: To Receive an Unlimited Number of Arguments

A function is not necessarily to receive a fixed number of arguments if you need more flexibility or even not sure how many arguments will be passed. Here is the asterisks’ showtime.

As the above example shown, when defining a function, we can define a parameter prefixed with one or two asterisks to capture unlimited numbers of arguments.

  • A parameter prefixed by one can capture any number of positional arguments into a .
  • A parameter prefixed by two can capture any number of keyword arguments into a .

By convention, we define a function like the following if the number of its arguments cannot be determined:

def func(*args, **kwargs):
pass

Use 3: Restrict to Keyword-Only Arguments

A really cool usage of asterisks is to make a function can only receive keyword arguments.

An example says more than a thousand words:

As shown in the above example, just one can restrict all following arguments must be passed as keyword arguments.

Actually, if we just would like to restrict a few arguments to be keyword-only and remain some positional arguments. We can just put the positional arguments before the asterisk.

Use 4: Iterables Unpacking

We can use asterisks to unpack iterables, which will make our programs clear and elegant.

For example, if we gonna combine different iterables, such as one list, one tuple and one set, into a new list, which is the best way?

Obviously, we can use for-loops to iterate all items and add them to a new list one by one:

Combine a list, a tuple and a set into one list

This way can accomplish our mission, but the code looks so long and not very “Pythonic”.

A better method is using list comprehensions:

Combine iterables by list comprehensions

We reduced three for-loops to one line list comprehension. It’s Pythonic already but not necessarily the simplest!

It’s time to see how beautiful the asterisks are. 🎉 🎉

The simplest way to combine iterables

As stated above, we can use the asterisk as prefix of iterables to unpack their items.

By the way, if we exploit one single as a prefix of a , its keys will be unpacked. If we exploit double asterisks as a prefix, its values will be unpacked. However, we must use their keys to receive the unpacked values. Because of this inconvenience, it’s not common to extract items of a by asterisks.

Unpack a dict by asterisks

Use 5: Extended Iterable Unpacking

This unpacking syntax was introduced by PEP 3132 to make our code more elegant.

This PEP proposes a change to iterable unpacking syntax, allowing to specify a “catch-all” name which will be assigned a list of all items not assigned to a “regular” name.

A simple example:

Conclusion

The asterisk is one of the most commonly used operators in programs. Besides using as a multiplication operator, there are some elegant and powerful uses of it in Python, which will help our code become more “Pythonic”.

Thanks for reading! More relative Python tutorials :

TechToFreedom

Dive into technology, investment and entrepreneurship.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store