
Coding Challenge π₯
π¬ Question: How to convert a list of strings to all lowercase in Python?
Here are three examples:
['HELLO', 'Python', 'world']
to['hello', 'python', 'world']
['A', 'B', 'C']
to['a', 'b', 'c']
['AA AA', 'BB$BB', 'CC()CC']
to['aa aa', 'bb$bb', 'cc()cc']
There are multiple great ways to accomplish this coding challenge and I strongly believe it’s a great learning tool to dive into each of them. So, let’s get started with my most recommended solution first! π
Method 1: List Comprehension + str.lower() π
The most Pythonic way to convert a string list my_list
to all lowercase strings is to use the str.lower()
method inside a list comprehension expression like so: [x.lower() for x in my_list]
. The result is a new string list, all lowercase.
Here’s this method applied to our example strings:
def all_lower(my_list): return [x.lower() for x in my_list] print(all_lower(['HELLO', 'Python', 'world'])) # ['hello', 'python', 'world'] print(all_lower(['A', 'B', 'C'])) # ['a', 'b', 'c'] print(all_lower(['AA AA', 'BB$BB', 'CC()CC'])) # ['aa aa', 'bb$bb', 'cc()cc']
If you struggle with list comprehension, I’d highly urge you to watch the following explainer video and dive into the related tutorial:
π Recommended Tutorial: List Comprehension in Python — A Helpfull Illustrated Guide
If you want to convert a string list to all uppercase, check out this detailed tutorial on the Finxter blog.
Method 2: Map Function + String Lower π
A concise Python one-liner to convert a string list to all lowercase strings is to use the map()
function with a lambda function as a first argument — converting a string argument x
to its lowercase variant using x.lower()
— and the list of strings as the second argument. The result is a map object that you can convert to a list using the list()
built-in function.
Here’s an example on the same sample lists:
def all_lower(my_list): return list(map(lambda x: x.lower(), my_list)) print(all_lower(['HELLO', 'Python', 'world'])) # ['hello', 'python', 'world'] print(all_lower(['A', 'B', 'C'])) # ['a', 'b', 'c'] print(all_lower(['AA AA', 'BB$BB', 'CC()CC'])) # ['aa aa', 'bb$bb', 'cc()cc']
An even more concise variant of this is to pass the str.lower()
method object right as a first argument of the map()
function like so:
def all_lower(my_list): return list(map(str.lower,my_list))
If you struggle with the map()
function, I’d recommend you check out the following video and blog tutorial:
π Recommended Tutorial: Python Map Function
Method 3: Simple For Loop and List Append π
The default but not so idiomatic way to convert a string list to a lowercase string list is to create an empty list and iterate over all elements in the original list, converting each element to a lowercase string using x.lower()
and appending this element to the newly-created list.
Here’s a minimal example:
def all_lower(my_list): new_list = [] for x in my_list: new_list.append(x.lower()) return new_list print(all_lower(['HELLO', 'Python', 'world'])) # ['hello', 'python', 'world'] print(all_lower(['A', 'B', 'C'])) # ['a', 'b', 'c'] print(all_lower(['AA AA', 'BB$BB', 'CC()CC'])) # ['aa aa', 'bb$bb', 'cc()cc']
It’s not so bad—mainly due to the efficiency of the list.append()
method. Feel free to check out our full guide on list.append()
with many interesting factoids such as which is faster: list.append()
or list.extend()
?
π Recommended Tutorial: Python List Append Method
Summary
You’ve learned three main ways to convert a list of strings to a list of lowercase strings:
[x.lower() for x in my_list]
list(map(str.lower, my_list))
- Loop over all
x
and calllist.append(x.lower())
In the process of solving this problem, we’ve learned many new Python features that every Python pro coder should know without using Google. π
If you want to keep improving your skills, I’ll invite you to join our free email academy and download our Python cheat sheets here:

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 that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a 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.