使用Python如何通过有序子集匹配来缩小一个由列表组成的列表[[..],[..],..]
?
在这个问题的背景下,如果列表M
包含列表L
的所有元素并且顺序相同,则列表L是列表M
的子集。例如,列表[1,2]是列表[1,2,3]的子集,但不是列表[2,1,3]的子集。
示例输入:
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]]
期望结果:
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]]
更多示例:
L = [[1, 2, 3, 4, 5, 6, 7], [1, 2, 5, 6]]
- 不进行 reduce 操作
L = [[1, 2, 3, 4, 5, 6, 7],
, [1, 2, 3]
[1, 2, 4, 8]]
- 进行 reduce 操作
L = [[1, 2, 3, 4, 5, 6, 7], [7, 6, 5, 4, 3, 2, 1]]
- 不进行 reduce 操作
(对于错误的数据集造成的混淆表示抱歉。)