Staram się znaleźć bardziej czysty sposób zwracania wartości logicznej, jeśli mój zestaw jest pusty na końcu mojej funkcji
Biorę przecięcie dwóch zestawów i chcę zwrócić Truelub Falsena podstawie tego, czy wynikowy zestaw jest pusty.
def myfunc(a,b):
c = a.intersection(b)
#...return boolean here
Moja pierwsza myśl była taka
return c is not None
Jednak w moim tłumaczu z łatwością widzę, że stwierdzenie zwróci prawdę, jeśli c = set([])
>>> c = set([])
>>> c is not None
True
Wypróbowałem również wszystkie z poniższych:
>>> c == None
False
>>> c == False
False
>>> c is None
False
Teraz już odczytać z dokumentacji, że można używać tylko and, ori notze zbiór pusty wydedukować wartość logiczną. Jak dotąd jedyne, co mogę wymyślić, to powrót nie c
>>> not not c
False
>>> not c
True
Mam wrażenie, że istnieje znacznie bardziej pytoniczny sposób, aby to zrobić, ponieważ staram się go znaleźć. Nie chcę zwracać rzeczywistego zestawu do instrukcji if, ponieważ nie potrzebuję wartości, chcę tylko wiedzieć, czy się przecinają.
bool(set([]))