pythonsetsymmetric-difference

Python: best way to find out from which set the results of `symmetric_difference` are from?


What is the best practice for finding out from which set the results of symmetric_difference are from?

intersect = s1.symmetric_difference(s2)

The result should look like

{'34':'s1', '66':'s2'} 

Where '34','66' are the unique items.


Solution

  • To do this most cleanly, the following should work:

    intersect = s1.symmetric_difference(s2)
    result = dict([(i, ("s1" if i in s1 else "s2")) for i in intersect])