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

时间:2019-03-21 05:22:06

标签: python list comparison-operators

我有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。那我怎样才能实现以上比较呢?

1 个答案:

答案 0 :(得分:1)

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

all(x in list_1 for x in list_2)
True

这里有live example