Standard ways to get union, intersection, difference of lists?

Discussion in 'Python' started by =?ISO-8859-1?Q?Mickel_Gr=F6nroos?=, Jun 26, 2003.

  1. Hi!

    Are there any standard list methods for getting the intersection and
    difference of two lists? (The union is easy ("list1.extend(list2)"),
    unless you want it to contain unique values.)

    Here is what I would like to have:

    list1 = [1,2,3]
    list2 = [3,4]

    list3 = list1.intersection(list2)
    (list3 is now [3])

    list3 = list1.difference(list2)
    (list3 is now [1,2])

    list3 = list2.difference(list1)
    (list3 is now [4])

    I realize I could quite easily implement this myself, but I was hoping for
    a built-in solution.

    Cheers,

    /Mickel

    --
    Mickel Grönroos, application specialist, linguistics, Research support, CSC
    PL 405 (Tekniikantie 15 a D), 02101 Espoo, Finland, phone +358-9-4572237
    CSC is the Finnish IT center for science, www.csc.fi
     
    =?ISO-8859-1?Q?Mickel_Gr=F6nroos?=, Jun 26, 2003
    #1
    1. Advertising

  2. =?ISO-8859-1?Q?Mickel_Gr=F6nroos?=

    Paul Rudin Guest

    >>>>> "Mickel" == Mickel Grönroos <> writes:

    > Hi! Are there any standard list methods for getting the
    > intersection and difference of two lists? (The union is easy
    > ("list1.extend(list2)"), unless you want it to contain unique
    > values.)


    [snip]

    > I realize I could quite easily implement this myself, but I was
    > hoping for a built-in solution.


    You might want to take a look at the sets module in Python 2.3. It's
    not exactly what you ask for since sets.Sets are not lists - but they
    do support these operations and can easily be converted to or from
    lists.
     
    Paul Rudin, Jun 26, 2003
    #2
    1. Advertising

  3. Mickel Grönroos wrote:

    > Are there any standard list methods for getting the intersection and
    > difference of two lists? (The union is easy ("list1.extend(list2)"),
    > unless you want it to contain unique values.)


    If you have Python 2.3 available, why not use a set?

    >>> import sets
    >>> s1 = sets.Set([1, 2, 3])
    >>> s2 = sets.Set([3, 4])
    >>> s1.intersection(s2)

    Set([3])
    >>> s1.difference(s2)

    Set([1, 2])
    >>> s2.difference(s1)

    Set([4])

    --
    Erik Max Francis && && http://www.alcyone.com/max/
    __ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
    / \ Only the ephemeral is of lasting value.
    \__/ Ionesco
     
    Erik Max Francis, Jun 26, 2003
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Gerrit Holl
    Replies:
    0
    Views:
    880
    Gerrit Holl
    Jun 26, 2003
  2. =?ISO-8859-1?Q?Mickel_Gr=F6nroos?=

    Re: Standard ways to get union, intersection, difference of lists?

    =?ISO-8859-1?Q?Mickel_Gr=F6nroos?=, Jun 26, 2003, in forum: Python
    Replies:
    3
    Views:
    1,464
    Mike C. Fletcher
    Jun 26, 2003
  3. Nick Timkovich
    Replies:
    0
    Views:
    84
    Nick Timkovich
    Feb 25, 2014
  4. Skip Montanaro
    Replies:
    0
    Views:
    83
    Skip Montanaro
    Feb 25, 2014
  5. Peter Otten
    Replies:
    1
    Views:
    102
    Mark Lawrence
    Feb 25, 2014
Loading...

Share This Page