hi list,
what is the best way to check if a given list (lets call it l1) is
totally contained in a second list (l2)?

for example:
l1 = [1,2], l2 = [1,2,3,4,5] ->  l1 is contained in l2
l1 = [1,2,2,], l2 = [1,2,3,4,5] ->  l1 is not contained in l2
l1 = [1,2,3], l2 = [1,3,5,7] ->  l1 is not contained in l2

my problem is the second example, which makes it impossible to work with
sets insteads of lists. But something like set.issubset for lists would
be nice.

greatz Johannes
Fastest, error-free and simplest solution is to use sets:

>>> l1 = [1,2]
>>> l2 = [1,2,3,4,5]
>>> set(l1)-set(l2)
set([])
>>> set(l2)-set(l1)
set([3, 4, 5])
>>>

Although with big lists, this is not very memory efficient. But I must tell you, sometimes I use this method for lists with millions of integers, and it is very fast and reliable, and memory is not a concern for me, at least - some million integers will fit into a few MB of memory. Read the docs about set operators for creating union, symmetric difference etc.

Best,

   Laszlo

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to