функция не удаляет повторно, хотя при первой итерации идет второй цикл где существует ветвление дабы если они схожы то удаляй со списка А, но тут не задача, он удаляет только один раз, Почему?
https://pastebin.com/hCZnYDht
не удаляй элементы листа пока итерируешься в нем. Работай с копией. Это как срубить сук на котором сидишь. Когда ты удаляешь элемент, твой итератор по которому ты ходишь становится не валидным потому что индексы оригинального листа изменились
А зачем вообще так сложно?
ну можно просто for i in a: if a in b: ...
[i for i in a if i not in b] исправит и твою проблему с неправильно работой с mutable, и сделает то, что делает твоя многострочная функция
или я что-то упустил?
+ сверху, функция называется array_diff, но по факту в твоем исполнении изменяет передаваемый ей объект а, что не очень ожидается исходя из названия :)
кста почему у тебя идет до for i?
не понял вопрос
Обсуждают сегодня