Skip to content Skip to sidebar Skip to footer

Ignore Case In String Comparison

If I have two variables, a and b and they could be integers, float, or strings. I want to return True if they are equal (in case of string, ignore case). As Pythonic as possible.

Solution 1:

This is the most pythonic I can think of. Better to ask for foregiveness than for permission:

>>>defiequal(a, b):...try:...return a.upper() == b.upper()...except AttributeError:...return a == b...>>>>>>iequal(2, 2)
True
>>>iequal(4, 2)
False
>>>iequal("joe", "Joe")
True
>>>iequal("joe", "Joel")
False

Solution 2:

How about this, without isinstance (frowned upon):

defequal(a, b):
    try:
        return a.lower() == b.lower()
    except AttributeError:
        return a == b

Solution 3:

>>>defequals_ignore_case(a,b):...return a.upper() == b.upper()...>>>equals_ignore_case("hello","Hello")
True

Post a Comment for "Ignore Case In String Comparison"