【问题标题】:How to check if a 3 leveled nested list is a subset of another 3 leveled nested list如何检查 3 级嵌套列表是否是另一个 3 级嵌套列表的子集
【发布时间】:2019-08-11 22:35:40
【问题描述】:

我有 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。那么如何实现上述比较呢?

【问题讨论】:

  • 使用 all() 函数

标签: python list comparison-operators


【解决方案1】:

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

all(x in list_1 for x in list_2)
True

这里有live example

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2013-03-01
    • 2015-06-02
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多