170 похожих чатов

Ребят я вот сижу и не могу догнать почему моя

функция не удаляет повторно, хотя при первой итерации идет второй цикл где существует ветвление дабы если они схожы то удаляй со списка А, но тут не задача, он удаляет только один раз, Почему?

https://pastebin.com/hCZnYDht

9 ответов

8 просмотров

не удаляй элементы листа пока итерируешься в нем. Работай с копией. Это как срубить сук на котором сидишь. Когда ты удаляешь элемент, твой итератор по которому ты ходишь становится не валидным потому что индексы оригинального листа изменились

А зачем вообще так сложно?

Zvs
?

ну можно просто for i in a: if a in b: ...

Zvs
?

[i for i in a if i not in b] исправит и твою проблему с неправильно работой с mutable, и сделает то, что делает твоя многострочная функция

+ сверху, функция называется array_diff, но по факту в твоем исполнении изменяет передаваемый ей объект а, что не очень ожидается исходя из названия :)

Zvs- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
15
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Добавляю 100 тыс слов в TListBox. Перемешаю скролл (от ListBox). После примерно 65536 скролл резко прыгает вверх. Это что за глюк? Как фиксить, кто-нибудь знает?
Eugene Krasnikov (ᴊɪɴ x)
8
Карта сайта