如何检查 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
我有 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