我有一段比较两个字符串的代码。
如果它们都是空的(即""
),则代码应返回True
如果它们都已“填充”,则代码应返回True
否则(即一个为空),代码应返回False
目前我有:
def compare(first, second):
if first:
return bool(second)
elif second:
return bool(first)
else:
return True
我确信有更简洁的方法可以用更少的条款(或理想情况下没有条款)来做到这一点吗?
答案 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!=''
你不应该依赖字符串上的布尔运算符