Розширюючи відповідь Пончика та інші відповіді тут, ви можете отримати ще кращі результати, використовуючи розуміння генератора замість розуміння списку та використовуючи setструктуру даних (оскільки inоператор O (n) у списку, але O (1) на набір).
Ось ось функція, яка працювала б для вас:
def filter_list(full_list, excludes):
s = set(excludes)
return (x for x in full_list if x not in s)
У результаті вийде ітерабельний, який буде ліниво отримувати відфільтрований список. Якщо вам потрібен реальний об'єкт списку (наприклад, якщо вам потрібно зробити len()результат за результатом), ви можете легко створити такий список, як:
filtered_list = list(filter_list(full_list, excludes))