[Tutor] finding non unique data in lists
Kent Johnson
kent_johnson at skillsoft.com
Thu Oct 14 13:44:55 CEST 2004
Scott,
You can make a Set from each list, then find the intersection of all the
sets. That will contain just the elements in all the lists.
>>> from sets import Set
First some raw data:
>>> l1 = [1,2,3,4,5,6,7]
>>> l2 = [2,3,4,7]
>>> l3 = [1,2,3,5,6,7]
Sets can be constructed from lists:
>>> s1 = Set(l1)
>>> s1
Set([1, 2, 3, 4, 5, 6, 7])
>>> s2 = Set(l2)
>>> s3 = Set(l3)
Sets overload the & operator to mean set intersection:
>>> all = s1 & s2 & s3
>>> all
Set([2, 3, 7])
Sets allow iteration to process their elements one-by-one:
>>> for i in all:
... print i
...
2
3
7
For more information about sets see the library reference page at
http://docs.python.org/lib/module-sets.html
Kent
At 01:12 PM 10/14/2004 +0200, Scott Melnyk wrote:
>Hello!
>
>I have a collection of lists of different lengths (containing exons
>from genetic data) that I would like to compare and only keep the
>those that are found within each of the lists. Any exon not present
>in all the lists is not important to me.
>
>I am new to python and was told that sets could be used easily to find
>the unique data but I am unsure the most efficient way how to pull out
>the non-unique data.
>
>All suggestions are very much appreciated and welcome.
>
>
>--
>Scott
>_______________________________________________
>Tutor maillist - Tutor at python.org
>http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list