Ich habe Probleme, einen saubereren Weg zu finden, um einen booleschen Wert zurückzugeben, wenn mein Satz am Ende meiner Funktion leer ist
Ich nehme den Schnittpunkt zweier Mengen und möchte zurückkehren Trueoder darauf Falsebasieren, ob die resultierende Menge leer ist.
def myfunc(a,b):
c = a.intersection(b)
#...return boolean here
Mein erster Gedanke war zu tun
return c is not None
In meinem Interpreter kann ich jedoch leicht erkennen, dass diese Aussage true zurückgibt, wenn c = set([])
>>> c = set([])
>>> c is not None
True
Ich habe auch Folgendes versucht:
>>> c == None
False
>>> c == False
False
>>> c is None
False
Jetzt habe ich aus der Dokumentation gelesen, die ich nur verwenden andkann or, und notmit leeren Mengen, um einen booleschen Wert abzuleiten. Bisher kann ich mir nur vorstellen, nicht zurückzukehren, nicht c
>>> not not c
False
>>> not c
True
Ich habe das Gefühl, dass es einen viel pythonischeren Weg gibt, dies zu tun, indem ich mich bemühe, ihn zu finden. Ich möchte die tatsächliche Menge nicht an eine if-Anweisung zurückgeben, da ich die Werte nicht benötige. Ich möchte nur wissen, ob sie sich überschneiden.
bool(set([]))