testing if a list contains a sublist

ChasBrown cbrown at cbrownsystems.com
Tue Aug 16 03:24:24 EDT 2011


On Aug 15, 11:51 pm, Laszlo Nagy <gand... at shopzeus.com> 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
>
> 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])
>  >>>
>

This approach fails the OP's desires when

>>> l1 = [1,2,2,]
>>> l2 = [1,2,3,4,5]

The OP explicitly desires 'l2 contains l1' to be false in that case.

Cheers - Chas



More information about the Python-list mailing list