Python中集合比较疑问:为何x<y与x>y结果均为False?
为什么集合x<y和x>y的结果都是False?
哦,这个问题的核心是你可能误解了Python里集合的<和>运算符的作用——它们不是用来比较集合的“大小”(比如元素数量或者字典序),而是用来判断集合之间的真子集/真超集关系的,具体规则是:
x < y等价于x.issubset(y) and x != y:意思是x的每一个元素都在y里,同时y还有x没有的元素(x是y的真子集)x > y等价于x.issuperset(y) and x != y:意思是y的每一个元素都在x里,同时x还有y没有的元素(x是y的真超集)
现在看你定义的两个集合:
x = {"a","b","1","2","3"} y = {"c","d","f","2","3","4"}
我们逐个分析:
- 对于
x < y:x里的"a"、"b"、"1"这三个元素都不在y中,显然x不可能是y的子集,更别说真子集了,所以结果是False。 - 对于
x > y:y里的"c"、"d"、"f"、"4"这四个元素都不在x中,y也不可能是x的子集,那x自然不是y的真超集,结果也是False。
总结一下就是:这两个集合互相都不包含对方的全部元素,所以两个比较的结果都是False。
内容的提问来源于stack exchange,提问作者Sai Swaroop Naidu
相关产品推荐
相关产品推荐

