Test if list contains another list
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Mon Sep 8 09:32:01 CEST 2008
mathieu a écrit :
> Hi there,
>
> I am trying to write something very simple to test if a list
> contains another one:
>
> a = [1,2,3]
>
> b = [3,2,1,4]
>
> but 'a in b' returns False.
Indeed. Lists are not sets, and the fact that all elements of list a
happens to also be part of list b doesn't make the list a itself an
element of list b.
>>> a = [1, 2, 3]
>>> b = [3,2,1,4]
>>> c = [b, a]
>>> a in c
True
>>> b in c
True
>>> c
[[3, 2, 1, 4], [1, 2, 3]]
>>>
> How do I check that a is indeed contained
> in b ?
But that's what you did - you *did* checked if a was contained in b, and
this is not the case. What you want is to check if *all elements* of a
are contained in b, which is quite another problem. Now the answer to
your question : use sets.
>>> set(a).issubset(set(b))
True
>>>
HTH
More information about the Python-list
mailing list