最佳答案
我正在努力寻找一种更干净的方式来返回一个布尔值,如果我的集合在函数结束时是空的
我取两个集合的交集,并希望根据结果集是否为空来返回 True
或 False
。
def myfunc(a,b):
c = a.intersection(b)
#...return boolean here
我最初的想法是
return c is not None
但是,在我的解释器中,我可以很容易地看到,如果 c = set([])
返回 true,那么该语句将返回 true
>>> c = set([])
>>> c is not None
True
我还尝试了以下所有方法:
>>> c == None
False
>>> c == False
False
>>> c is None
False
现在我已经从文档中读到,我只能使用带有空集的 and
、 or
和 not
来推断布尔值。到目前为止,我唯一能想到的就是返回而不是 c
>>> not not c
False
>>> not c
True
我有一种感觉,有一个更蟒蛇的方式来做到这一点,由我正在努力寻找它。我不想将实际的集合返回到 if 语句,因为我不需要这些值,我只想知道它们是否相交。