[Python-ideas] Fwd: exclusively1, common, exclusively2 = set1 - set2, set1 & set2, set2 - set1
Joshua Landau
joshua.landau.ws at gmail.com
Thu Jul 4 02:00:37 CEST 2013
---------- Forwarded message (apologies, the CC says it all) ----------
From: Joshua Landau <joshua.landau.ws at gmail.com>
Date: 4 July 2013 00:57
Subject: Re: [Python-ideas] exclusively1, common, exclusively2 = set1
- set2, set1 & set2, set2 - set1
To: Paddy3118 <paddy3118 at gmail.com>
Cc: python-ideas at googlegroups.com
On 3 July 2013 21:50, Paddy3118 <paddy3118 at gmail.com> wrote:
> I found myself repeating something that I know I have used before, several
> times: I get two sets of results, may be sets of the passing tests when a
> design has changed, and I need to work out what has changed so work out
>
> 1. What passed first time round
> 2. What passed both times.
> 3. What passed only the second time round.
>
> I usually use something like the set equations in the title to do this but I
> recognise that this requires both sets to be traversed at least three times
> which seems wasteful.
As far as I understand, this requires only 3 traversals in total.
> I wondered if their was am algorithm to partition the two sets of data into
> three as above, but cutting down on the number of set traversals?
You could cut it down to two, AFAIK. This seems like a minor gain.
> I also wondered that if such an algorithm existed, would it be useful enough
> to be worth incorporating into the Python library?
>
> Maybe defined as:
>
> exclusively1, common, exclusively2 = set1.partition(set2)
Something more useful, as it's just as good in this case could be:
set1.partition(set2) === set1 - set2, set1 & set 2
similarly to how we have divmod.
More information about the Python-ideas
mailing list