Python: определите, содержится ли несортированный список в «списке списков», независимо от порядка элементов
У меня есть похожий вопрос к этому вопросу:Определить, имеют ли 2 списка одинаковые элементы независимо от порядка?
Какой самый лучший / самый быстрый способ определить, есть ли несортированный списокlist1
содержится всписок списков myListOfLists
независимо от порядка элементовlist1
? Моя попытка обернута в функциюdoSomething(...)
который я называю много раз:
def doSomething(myListOfLists, otherInputs):
list1 = []
... # do something here with `otherInputs'
... # which gives `list1' some values
# now only append `list1' to `myListOfLists' if it doesn't already exist
# and if it does exist, remove it
removeFromList = False
for myList in myListOfLists:
if sorted(list1) == sorted(myList):
removeFromList = True
break
if removeFromList:
myListOfLists.remove(list1)
else:
myListOfLists.append(list1)
return myListOfLists
Проблема в том, что мне нужно запустить функциюdoSomething(...)
примерно в 1,0-5 раз. КакmyListOfLists
становится больше с каждым вызовомdoSomething(...)
это становится очень много времени.
РЕДАКТИРОВАТЬ:
Некоторое уточнение задачи. Позвольте мне привести пример желаемого результата здесь:
a = []
doSomething(a, [1,2,3])
>> a = [1,2,3]
Так как[1,2,3]
не вa
, это добавлено к.a
doSomething(a, [3,4,5])
>> a = [[1,2,3], [3,4,5]]
Так как[3,4,5]
не вa
, это добавлено к.a
doSomething(a, [1,2,3])
>>[3,4,5]
Так как[1,2,3]
является вa
, он удален из.a
РЕДАКТИРОВАТЬ:
Все списки имеют одинаковую длину.