ฉันกำลังดิ้นรนเพื่อหาวิธีคืนค่าบูลีนที่สะอาดยิ่งขึ้นหากชุดของฉันว่างเปล่าเมื่อสิ้นสุดฟังก์ชัน
ฉันใช้จุดตัดของสองชุดและต้องการส่งคืนTrueหรือFalseขึ้นอยู่กับว่าชุดผลลัพธ์ว่างเปล่า
def myfunc(a,b):
c = a.intersection(b)
#...return boolean here
ความคิดแรกของฉันคือการทำ
return c is not None
อย่างไรก็ตามในล่ามของฉันฉันสามารถเห็นได้อย่างง่ายดายว่าคำสั่งนั้นจะกลับมาเป็นจริงถ้า c = set([])
>>> 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 เพราะฉันไม่ต้องการค่าฉันแค่อยากรู้ว่ามันตัดกันหรือไม่
bool(set([]))