Как сравнить двумерный список, которого нет в другом двумерном списке? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть два списка, которые являются двухмерными.Я хотел бы сравнить df0, которого нет в df1.Это код, который я имею ниже, но он только дает мне соответствующее значение.

Например:

df0=[[2, 4, 7, 13, 14],
     [3, 5, 8, 13, 14],
     [6, 9, 10, 13, 14]]

df1=[[4, 7, 9, 12],
     [12, 15, 17, 18, 19],
     [13, 22, 23, 24, 30],
     [2, 5, 7, 8, 9],
     [6, 7, 12, 14, 15]]

df3= list(enumerate([[list(set(x) & set(y))
                      for x in df0
                      if x not in df1]
                     for y in df1]))

Я бы хотел, чтобы мои результаты были:

[[[9, 12], [], [22,23,24,30], [5,8,9], [6,12,15]],
 [[], [], [22,23,24,30], [2,7,9], [6,7,12,15]],
 [[], [], [22,23,24,30], [], [7,12,15]]]

1 Ответ

0 голосов
/ 23 сентября 2019

Ваш желаемый результат может быть достигнут с помощью этого алгоритма:

[ [ list(sorted(set(x) - set(y)))
    if set(y) & set(x)
    else []
    for x in df1 ]
  for y in df0 ]

Но если это имеет какой-то смысл, это ваше дело:)

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