Python:测试字符串之间的相互依赖性

时间:2014-09-17 10:08:34

标签: python string logic

我有一段比较两个字符串的代码。

如果它们都是空的(即""),则代码应返回True

如果它们都已“填充”,则代码应返回True

否则(即一个为空),代码应返回False

目前我有:

def compare(first, second):

        if first:
            return bool(second)
        elif second:
            return bool(first) 
        else:
            return True

我确信有更简洁的方法可以用更少的条款(或理想情况下没有条款)来做到这一点吗?

2 个答案:

答案 0 :(得分:2)

您需要"排除or"的反转:

>>> def compare(first, second):
    return not bool(first) ^ bool(second)

>>> compare("", "")
True
>>> compare("foo", "")
False
>>> compare("", "bar")
False
>>> compare("foo", "bar")
True

答案 1 :(得分:-1)

return len(first) == len(second) == 0 or len(first) > 0 and len(second) > 0

或者

return a==b=='' or a!='' and b!=''

你不应该依赖字符串上的布尔运算符