On 16/08/2011 00:26, Johannes wrote:
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.
Here's my solution, using the Counter class:
>>> from collections import Counter
>>>
>>> c1 = Counter([1,2])
>>> c2 = Counter([1,2,3,4,5])
>>> (c1 & c2) == c1
True
>>>
>>> c1 = Counter([1,2,2,])
>>> c2 = Counter([1,2,3,4,5])
>>> (c1 & c2) == c1
False
>>>
>>> c1 = Counter([1,2,3])
>>> c2 = Counter([1,3,5,7])
>>> (c1 & c2) == c1
False
--
http://mail.python.org/mailman/listinfo/python-list