Как проверить, является ли вложенный список с тремя уровнями подмножеством другого вложенного списка с тремя уровнями - PullRequest
1 голос
/ 21 марта 2019

У меня есть 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 Ответ

1 голос
/ 21 марта 2019

Вы можете проверить, что all подсписок в list_2 находится в пределах list_1:

all(x in list_1 for x in list_2)
True

Здесь у вас есть живой пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...