Я использую python, чтобы попытаться удалить элементы, которые пересекаются из другого списка. Итак, вот что я имею.Python удаляет элементы из списка, которые существуют в другом списке, но сохраняя дубликаты, которые не находятся в этом пересечении.
letter = ['a', 'a', 'i', 'd', 'e', 'i', 'a', 'b', 'b', 'c', 'o', 'g', 'a', 'f', 'f', 'i', 'g', 'i' ]
cons = ['b','c','d', 'f', 'g']
, и я хочу удалить любую букву из списка писем из списка букв, но сохранить все остальное. Итак, вот что я хочу получить.
letter = ['a', 'a', 'i', 'e', 'i', 'a', 'o', 'a', i', 'i' ]
Ниже приведено то, что я пробовал до сих пор, но он не работает.
for i in letter[:]:
if i in cons:
letter.remove(i)
cons.remove(i)
и ...
list(set(x) - set(y))
Я просто хочу, чтобы удалить пересечение списков и хранить дубликаты из первого списка, которые не во втором списке. Все, что я пробовал до сих пор, удалил эти дубликаты из первого списка, который я хочу сохранить. Любая помощь очень ценится!
И для повышения эффективности , это, вероятно, поможет хранить 'cons' как' set'/'frozenset' (или если он короткий, как простая строка, которая по-прежнему является временем линейного сканирования, но быстрее для теста на членство для отдельных символов, чем' list' одиночных символьных строк). – ShadowRanger
true, я действительно не беспокоился об эффективности в этом, но это сделало бы огромный импульс. отредактировано, чтобы добавить это –