Do you need to create a function that returns a list but you don’t know how? No worries, in sixty seconds, you’ll know! Go! 💨
A Python function can return any object such as a list. To return a list, first create the list object within the function body, assign it to a variable
your_list, and return it to the caller of the function using the keyword operation “
For example, the following code creates a function
create_list() that iterates over all numbers 0, 1, 2, …, 9, appends them to the list
your_list, and returns the list to the caller of the function:
def create_list(): ''' Function to return list ''' your_list =  for i in range(10): your_list.append(i) return your_list numbers = create_list() print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Note that you store the resulting list in the variable
numbers. The local variable
your_list that you created within the function body is only visible within the function but not outside of it. So, if you try to access the name
your_list, Python will raise a
>>> print(your_list) Traceback (most recent call last): File "C:\Users\xcent\Desktop\code.py", line 9, in <module> print(your_list) NameError: name 'your_list' is not defined
To fix this, simply assign the return value of the function — a list — to a new variable and access the content of this new variable:
>>> numbers = create_list() >>> print(numbers) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
There are many other ways to return a list in Python. For example, you can use a list comprehension statement instead that is much more concise than the previous code—but creates the same list of numbers:
def create_list(): ''' Function to return list ''' return [i for i in range(10)] numbers = create_list() print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
List comprehension is a very useful Python feature that allows you to dynamically create a list by using the syntax
[expression context]. You iterate over all elements in a given context “
for i in range(10)“, and apply a certain expression, e.g., the identity expression
i, before adding the resulting values to the newly-created list.
In case you need to learn more about list comprehension, feel free to check out my explainer video:
An interesting way to return a list from a function is to use lambda functions.
A lambda function is an anonymous function in Python. It starts with the keyword
lambda, followed by a comma-separated list of zero or more arguments, followed by the colon and the return expression. Use the square bracket notation
[ ... ] or the
list() constructor to create and return a list object.
The following code snippet uses a combination of features.
- The lambda function dynamically creates a function object and assigns it to the variable
create_list. You can then call the function like before with
- The list comprehension expression creates a list and return it at the same time in a single line of code—it cannot get more concise than that.
create_list = lambda : [i for i in range(10)] numbers = create_list() print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Where to Go From Here?
Enough theory, let’s get some practice!
To become successful in coding, you need to get out there and solve real problems for real people. That’s how you can become a six-figure earner easily. And that’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?
Practice projects is how you sharpen your saw in coding!
Do you want to become a code master by focusing on practical code projects that actually earn you money and solve problems for people?
Then become a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
Join my free webinar “How to Build Your High-Income Skill Python” and watch how I grew my coding business online and how you can, too—from the comfort of your own home.
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.