Jaggo wrote:
> Hello!
> 
> I desperately need a simple way to compare whether any item of SmallList 
> is in BigList.
> 
> My current way,
> 
> def IsAPartOfList(SmallList,BigList)
> for item in SmallList:
>     if item in BigList:
>        return True
> return False
> 
> Takes up waay too much time to process.
> Can anyone think of any better way?
> 
> Usually, SmallList is generated using range(Long, Long+ ~300)
> BigList is usually of a few hundreds of long numbers.

Why not just check if if any item in BigList is in the range Long, Long+300?

for item in BigList:
   if Long < item <= Long+300:
     return True
return False

which (in Python 2.5) can be shortened to
return any(item in BigList if if Long < item <= Long+300)

If you really have to make the list, you will do better with a set, 
especially if the set can be reused over multiple calls.

bigSet = set(BigList)
return any(item for item in SmallList if item in BigList)

If speed is critical, you might see if it matters which list becomes the 
set and which is iterated.

Kent
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to