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)会成立的主要内容,如果未能解决你的问题,请参考以下文章

没有第三个变量如何交换?

今天遇到了 X-Y PROBLEM

python 中不等于怎么表示

搅拌机在 X-Y 平面上移动顶点

Python在单击时获取鼠标x,y位置

python的三元运算