How to identify which numbers in a list are within each others' range

attn.steven.kuo at gmail.com attn.steven.kuo at gmail.com
Thu Jan 31 23:58:42 CET 2008


On Jan 31, 2:48 pm, "attn.steven.... at gmail.com"
<attn.steven.... at gmail.com> wrote:
> On Jan 31, 8:12 am, erikcw <erikwickst... at gmail.com> wrote:
>

> One way would be to use sets and check for intersection:
>
> for idx, s in enumerate(mysets):
>     for next_idx, next_s in enumerate(mysets[idx+1:]):
>         if s.intersection(next_s):
>             print "mylist[%d] and mylist[%d] intersect" % (
>                     idx, idx + next_idx + 1 )
>


Um, that would have been more helpful if I hadn't forgotten
to preface that with:

mylist = [(55, 58, 52), (20, 22, 18), (17, 21, 13), (60, 63, 57),]
mysets = [set(range(x[2],x[1])) for x in mylist]

--
Cheers,
Steven





More information about the Python-list mailing list