Odd-R. wrote: >I have to lists, A and B, that may, or may not be equal. If they are not >identical, I want the output to be three new lists, X,Y and Z where X has >all the elements that are in A, but not in B, and Y contains all the >elements that are B but not in A. Z will then have the elements that are >in both A and B. > > These are set operations.
>One way of doing this is of course to iterate throug the lists and compare >each of the element, but is there a more efficient way? > > Maybe, using sets? L1 = [1,2,3,4] L2=[3,4,5,6] diff1 = list(set(L1)-set(L2)) # [1,2] diff2 = list(set(L2)-set(L1)) # [5,6] symdiff = diff1+diff2 # Symmetric difference [1,2,5,6] intersect = set(L1+L2) - set(symdiff) # Intersect [3,4] Best, Les -- http://mail.python.org/mailman/listinfo/python-list