Laszlo Nagy <[email protected]> wrote:
> 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])
> >>>
Error-free? Not given the stated requirements:
> l1 = [1,2,2,], l2 = [1,2,3,4,5] -> l1 is not contained in l2
>>> l1 = [1,2,2]
>>> l2 = [1,2,3,4,5]
>>> set(l1)-set(l2)
set()
>>> set(l2)-set(l1)
{3, 4, 5}
As you can see, using sets provides the exact same result for a non-
contained sub-list as it does for your valid example. The list
[1,2,2,2,2,2,2,2,2] is clearly not contained with [1,2,3], but your
code would say it is.
Similarly, [9,8,7] would appear to be a sub-list of [5,6,7,8,9],
something I'd also considered to be false in this instance.
(My apologies if this is a double-up, the original post hasn't
appeared yet)
--
http://mail.python.org/mailman/listinfo/python-list