如何检查 3 级嵌套列表是否是另一个 3 级嵌套列表的子集

How to check if a 3 leveled nested list is a subset of another 3 leveled nested list

我有 2 个列表作为 list<list<list>> 列表,我想在其中检查其中一个是否是另一个的子集。

list_1 = [
           [
             [1,2],[2,3]
           ],
           [
             [3,4],[5,6]
           ]
         ]
list_2 = [
           [
             [3,4], [5, 6]
           ]
         ]

所以预期的输出是因为 list2 有 [[[3,4]]],它是 list_1 的一部分,所以它应该是一个子集。

list_1 有 2 个元素,它的第二个元素与 list_2 中的第一个元素匹配,所以 list_2 是 list_1 的子集。

比较不是在元素级别而是在列表级别。

我尝试了 set(list_2) < set(list_1),但结果是 unhashable type: list。那我怎样才能达到上面的比较呢?

您可以检查 list_2 中的 all 子列表是否在 list_1:

all(x in list_1 for x in list_2)
True

这里有 live example