testing if a list contains a sublist

Steven D'Aprano steve+comp.lang.python at pearwood.info
Tue Aug 16 10:37:21 CEST 2011


On Tue, 16 Aug 2011 04:14 pm ChasBrown wrote:

> On Aug 15, 4:26 pm, Johannes <dajo.m... at web.de> 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.
>>
>> greatz Johannes
> 
> My best guess:
> 
> from collections import Counter

There's no reason to think that the Original Poster wants a multiset based
solution. He asked about lists and sublists. That's a standard term, like
substring:

"12" is a substring of "01234". 
"21" and "13" are not.

[1, 2] is a sublist of [0, 1, 2, 3, 4]. 
[2, 1] and [1, 3] are not.

Since lists are ordered, so are sublists.

If the OP does want a solution that ignores order, then he needs to describe
his problem better.



-- 
Steven




More information about the Python-list mailing list