У меня есть два списка A и B. Я хочу удалить элемент в A из B. Я представляю текущий и ожидаемый результат.
B=[4,5,1]
A=[1]
del B[A[0]]
print(B)
Текущий выход
[4,1]
Ожидаемый результат
[4,5]
То, что вы делаете, удаляет по индексу, а не по значению.
Эффективно del B[1] и вы удивлены, что элемент с индексом 1 удален!?
Попробуйте в следующий раз запустить эту небольшую программу на визуальной платформе — pythontutor.com, чтобы изучить пошаговые операции.






Когда вы укажете код, код удалит элемент с индексом A[0], который равен 1. Итак, вы можете визуализировать это del B[A[0]] = del B[1] = удалить элемент с индексом 1 в B
Ваш окончательный код должен быть:
Вы можете set сделать это
B=[4,5,1]
A=[1]
C = set(B) - set(A)
print(list(C))
в этом коде мы превращаем список в набор, и после вычитания мы снова превращаем результат в список
или использовать для цикла
B=[4,5,1]
A=[1]
for item in A:
B.remove(item)
print(B)
здесь вы можете использовать цикл for, он зациклится на каждом элементе в A и удалит его из B
Вы проверили
list.remove?