
Coding Challenge π₯
π¬ Question: How to convert a list of strings to all lowercase in Python?
Here are three examples:
β₯οΈ Info: Are you AI curious but you still have to create real impactful projects? Join our official AI builder club on Skool (only $5): SHIP! - One Project Per Month
['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
xand 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: