Какой эффективный способ очистить список в списке.потому что я только хочу получить самый большой набор в списке.просто как.
b = [[1,2,3], [1,2], [3,5], [2,3,4], [2,3,4], [3,4,5], [1,2,4,6,7]]
, и я хочу вывод, как показано ниже.
result = [[1,2,3], [2,3,4], [3,4,5], [1,2,4,6,7]]
Причина [1,2] является подмножеством [1,2,3] и [1,2,4,6,7], [3,5] является подмножеством [3,4, 5], а также [2,3,4] появляются 2 раза, только хочу вычислить 1 раз в конечном результате.Я хочу на основе логического подмножества для фильтрации данных.
Я только придумываю решение с 2 циклами, чтобы решить эту проблему, но если есть другой эффективный способ решить эту проблему.
то, что я пытался сделать так: (после оптимизации этого еще одного эффекта, добавить разрыв и добавить 1 часть, не рассчитать 2 раза)
b = [[1,2,3], [1,2], [3,5], [2,3,4], [2,3,4], [3,4,5], [1,2,4,6,7]]
i = 0
record = []
subset_status = False
for index, re in enumerate(b):
while i <= (len(b)-1):
if i != index:
if i not in record:
if set(re).issubset(b[i]):
subset_status = True
break
i += 1
i = 0
if subset_status:
record.append(index)
subset_status = False
print(record)
>>[1, 2, 3]
Таким образом, я получил индекс в [1,2,3] грязных данных.Спасибо.