忽略字符串比较中的大小写

时间:2012-08-16 18:24:06

标签: python equals

如果我有两个变量,a和b,它们可以是整数,浮点数或字符串。

如果它们相等,我想返回True(如果是字符串,则忽略大小写)。

尽可能使用Pythonic。

3 个答案:

答案 0 :(得分:20)

这是我能想到的最蟒蛇。最好是要求宽恕而不是许可:

>>> def iequal(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

答案 1 :(得分:7)

如果没有实例(不赞成),这是怎么回事:

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

答案 2 :(得分:2)

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