Python在什么情况下y!=x-(x-y)会成立
Posted Channing Lewis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python在什么情况下y!=x-(x-y)会成立相关的知识,希望对你有一定的参考价值。
当x、y都是集合,且y不是x的子集时成立。
因为集合相减没有“负元素”的概念,有元素就减掉,没有就不减。所以x-(x-y)得到的是x和y的交集。
那么什么情况下y会不等于x和y的交集呢?显然,当y有x所没有的元素时,即y不是x的子集。有的答案说x和y都为非空集合才成立,其实是不对的。当x为空集时,y不能是x的子集,也就是y不能也为空集即可;当y是空集时肯定不行,因为空集是任何集合的子集。
注意浮点误差不会导致不相等,因为同一个数的误差是一致的,有的话会抵消。例如如果x=2,因为浮点误差表示为1.99999999998,那么另一个x也是1.99999999998,不会出现另一个x是2.0000000001的情况,因此x-y少减的,x-(x-y)会补回来。
x = 'a', 'b'
y = 'a'
print(y != x - (x - y)) # False,y是x的子集
x = 'a', 'b'
y = 'a', 'b'
print(y != x - (x - y)) # False,同上
x = 'a', 'b'
y = 'a', 'c'
print(y != x - (x - y)) # True,y不是x的子集
x = set()
y = 'a', 'b'
print(y != x - (x - y)) # True,x为空集时,y为非空集合则一定不是其子集
x = 'a', 'b'
y = set()
print(y != x - (x - y)) # False,y为空集时,x一定是y的超集
x = set()
y = set()
print(y != x - (x - y)) # False,同上
以上是关于Python在什么情况下y!=x-(x-y)会成立的主要内容,如果未能解决你的问题,请参考以下文章