疯狂的python设置

Ser*_*eim 2 python set

请查看ipython的以下片段:

In [122]: len(netean)
Out[122]: 150

In [123]: len(nwrongpea)
Out[123]: 100

In [124]: len(set.intersection(set(nwrongpea), set(netean)))
Out[124]: 8

In [125]: len(set(nwrongpea) - set(netean))
Out[125]: 90

In [126]: len(set(netean) - set(nwrongpea))
Out[126]: 142
Run Code Online (Sandbox Code Playgroud)

我疯了 - 因为这两个列表共有8个元素(基于交叉点的答案),[125]如何返回90?不应该是92?

我是否忘记了集理论中的某些东西?

谢谢 !

sin*_*nan 10

看起来这个集合中的一个(或两个)有一些重复的元素.因此,从它们创建集合可以为您提供具有较少元素数量的集合.

试试看len(set(natean)) + len(set(nwrongpea)),你会看到.

  • 实际上有10个重复:(A u B)=(A - B)+(A!u B)+(B - A).在这种情况下(A u B)= 90 + 8 + 142 = 240 (2认同)