Using Python how do you reduce a list of lists by an ordered subset match [[..],[..],..]
?
In the context of this question a list L is a subset of list M
if M
contains all members of L
, and in the same order. For example, the list [1,2] is a subset of the list [1,2,3], but not of the list [2,1,3].
Example input:
a. [[1, 2, 4, 8], [1, 2, 4, 5, 6], [1, 2, 3], [2, 3, 21], [1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7]]
b. [[2, 16, 17], [1, 2, 3, 4, 5, 6, 7], [1], [1, 2, 3, 4], [1, 2], [17, 18, 19, 22, 41, 48], [2, 3], [1, 2, 3], [50, 69], [1, 2, 3], [2, 3, 21], [1, 2, 3], [1, 2, 4, 8], [1, 2, 4, 5, 6]]
Expected result:
a. [[1, 2, 4, 8], [2, 3, 21], [1, 2, 3, 4, 5, 6, 7]]
b. [[2, 16, 17], [1, 2, 3, 4, 5, 6, 7], [17, 18, 19, 22, 41, 48], [50, 69], [2, 3, 21], [1, 2, 4, 8], [1, 2, 4, 5, 6]]
Further Examples:
L = [[1, 2, 3, 4, 5, 6, 7], [1, 2, 5, 6]]
- No reduce
L = [[1, 2, 3, 4, 5, 6, 7],
, [1, 2, 3]
[1, 2, 4, 8]]
- Yes reduce
L = [[1, 2, 3, 4, 5, 6, 7], [7, 6, 5, 4, 3, 2, 1]]
- No reduce
(Sorry for causing confusion with the incorrect data set.)