HiveBrain v1.2.0
Get Started
← Back to all entries
snippetpythonTip

How do I convert a string to lowercase in Python?

Submitted by: @import:30-seconds-of-code··
0
Viewed 0 times
howlowercaseconvertpythonstring

Problem

Python's standard method for converting a string to lowercase is str.lower() and is compatible with both Python 2 and Python 3. While this is the standard way for most cases, there are certain cases where this method might not be the most appropriate, especially if you are working with Unicode strings.
Python 3 introduced str.casefold(), which is very similar to str.lower(), but more aggressive as it is intended to remove all case distinctions in Unicode strings. It implements the casefolding algorithm as described in section 3.13 of the Unicode Standard.

Solution

'Hello'.lower()               # 'hello'
'Straße'.lower()              # 'straße'
'Straße'.upper().lower()      # 'strasse'
# Example of incorrect result when used for unicode case-insensitive matching
'Straße'.upper().lower() == 'Straße'.lower() # False ('strasse' != 'straße')

Code Snippets

'Hello'.lower()               # 'hello'
'Straße'.lower()              # 'straße'
'Straße'.upper().lower()      # 'strasse'
# Example of incorrect result when used for unicode case-insensitive matching
'Straße'.upper().lower() == 'Straße'.lower() # False ('strasse' != 'straße')
'Hello'.casefold()            # 'hello'
'Straße'.casefold()           # 'strasse'
'Straße'.upper().casefold()   # 'strasse'
# Returns the correct result when used for unicode case-insensitive matching
'Straße'.upper().casefold() == 'Straße'.casefold() # True

Context

From 30-seconds-of-code: lowercase

Revisions (0)

No revisions yet.