python 集合 中的 difference() 和 _symmetricdifference() 方法有什么区别?
原文由 Anya Samadi 发布,翻译遵循 CC BY-SA 4.0 许可协议
python 集合 中的 difference() 和 _symmetricdifference() 方法有什么区别?
原文由 Anya Samadi 发布,翻译遵循 CC BY-SA 4.0 许可协议
两个相交集(或事物组)之间的差异与算术差异并不完全相同。
将上面的两组(蓝色和绿色)视为彼此相交的两组或圆圈。黄色是交叉点,属于两组。
现在考虑从蓝色中减去绿色的集合结果应该是什么。它应该有任何蔬菜吗?不,因为它们被减去。它应该有任何黄色吗?不,因为黄色也是绿色。
那么从绿色中减去蓝色呢?当然,情况恰恰相反。
因此,您可以从一组或另一组中获取物品,但不能同时从两者中获取。小编要给小伙伴介绍一下,对称差。这家伙给你蓝色和绿色,但不是黄色。
>>> a = {1,2,3}
>>> b = {1,4,5}
>>> a - b ## asymmetric difference
{2, 3}
>>> b - a ## asymmetric difference
{4, 5}
>>> a ^ b ## symmetric difference
{2, 3, 4, 5}
不对称差异取决于您对 a
和 b
的操作,或者您如何看待它们,以什么顺序比较它们。以一种方式看你得到一件事,以不同的方式看你得到不同的东西。根据定义,对称差异不在乎您以何种方式看待它。
笔记。这与 XOR 的行为类似。因此,在 python 语言中选择了运算符。 ^
如果你给它数字,它也被用作二进制异或。
原文由 Pedro Rodrigues 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.9k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
4 回答775 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
如果
A
和B
是集合是
A
中的所有内容,而不是B
中的所有内容。A.symmetric_difference(B)
是 恰好在一组中的所有元素,即A - B
和B - A
—的并集