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

How do I do a case-insensitive string comparison?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
howinsensitivecasestringcomparison

Problem

How can I compare strings in a case insensitive way in Python?

I would like to encapsulate comparison of a regular strings to a repository string, using simple and Pythonic code. I also would like to have ability to look up values in a dict hashed by strings using regular python strings.

Solution

Assuming ASCII strings:

string1 = 'Hello'
string2 = 'hello'

if string1.lower() == string2.lower():
    print("The strings are the same (case insensitive)")
else:
    print("The strings are NOT the same (case insensitive)")


As of Python 3.3, casefold() is a better alternative:

string1 = 'Hello'
string2 = 'hello'

if string1.casefold() == string2.casefold():
    print("The strings are the same (case insensitive)")
else:
    print("The strings are NOT the same (case insensitive)")


If you want a more comprehensive solution that handles more complex unicode comparisons, see other answers.

Code Snippets

string1 = 'Hello'
string2 = 'hello'

if string1.lower() == string2.lower():
    print("The strings are the same (case insensitive)")
else:
    print("The strings are NOT the same (case insensitive)")
string1 = 'Hello'
string2 = 'hello'

if string1.casefold() == string2.casefold():
    print("The strings are the same (case insensitive)")
else:
    print("The strings are NOT the same (case insensitive)")

Context

Stack Overflow Q#319426, score: 827

Revisions (0)

No revisions yet.