Проблема с удалением элементов списка в другом списке в 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]
Вернуться на верх