Проблема с удалением элементов списка в другом списке в python
У меня есть код, который по существу удаляет любой элемент в списке, который присутствует в другом списке, который содержит больше элементов, чем список, который удаляет. Список, который удаляет, содержит имена изображений, которые я хочу удалить из загружаемых пользователем изображений
Это первый код:
for i in images:
if i.name in adi:
# del images[images.index(i)]
images.pop(images.index(i))
Это работает для ввода небольших файлов, но всякий раз, когда я пытаюсь загрузить до 21 или 20 изображений, он ошибается в количестве, которое он удаляет, не удаляя некоторые элементы, которые должны быть удалены в списке. Поэтому я попробовал выполнить один и тот же код дважды:
for i in images:
if i.name in adi:
# del images[images.index(i)]
images.pop(images.index(i))
for k in images:
if k.name in adi:
images.pop(images.index(k))
После принятия пользовательского ввода в списке все равно останется хотя бы одно изображение, которое должно быть удалено. Является ли что-то неправильным в логике, которую я использую для реализации, и если да, то как я должен реализовать это вместо
Возможно, это сработает для вас:
list_1 = [1, 2, 3, 4, 5]
list_2 = [2, 4]
list_2 = [x for x in list_1 if x not in list_2]
list_2
Выход:
[1, 3, 5]