Как вычесть один список из другого?
-
Есть 2 списка со строками, нужно из одного вычесть строки содержащиеся во втором списке. Как это реализовать?
-
@prakash Организовать цикл. 0_1558868513508_rand_.xml
Реализуется это все в одном кубике, но меня просили не использовать выполнить код) потому так. В коде так же но на порядки быстрее
upd оптимизировал для кубиков стало чуть быстрее.
-
@tts9 А без цикла не как? У меня в списке сотни тысяч строк - пол дня ждать пока цикл отработает... Например у вкБаркова есть такой инструмент, он за пару секунд списки обрабатывает, там явно не циклом выполняется.
-
@prakash said in Как вычесть один список из другого?:
@tts9 А без цикла не как? У меня в списке сотни тысяч строк - пол дня ждать пока цикл отработает... Например у вкБаркова есть такой инструмент, он за пару секунд списки обрабатывает, там явно не циклом выполняется.
Везде все циклами. Просто делать это надо в режиме запуска, а не записи и будет быстро.
-
@prakash Никак, у вкБаркова тоже цикл, я же указал в коде это отработает на порядок быстрее.
0_1558873808067_rand_.xml
Да, в этом скрипте я убрал значение удалять по значению, он убирает по номеру что бы не плодить циклы =). А в общем это тоже самый скрипт.
-
@tts9 said in Как вычесть один список из другого?:
@prakash Никак, у вкБаркова тоже цикл, я же указал в коде это отработает на порядок быстрее.
0_1558873808067_rand_.xml
Да, в этом скрипте я убрал значение удалять по значению, он убирает по номеру что бы не плодить циклы =). А в общем это тоже самый скрипт.Вот спасибо тебе мил человек! Уважил нуба))
-
@prakash Заменяйте списки на свои список которые для кастрации и усекновений, VAR_LIST т.е везде в коде на свои значения заменить, список для сравнения VAR_LIST_1 соответственно свое название списка везде в коде. он сравнивает каждый элемент из него со списком для резки.
-
@tts9 said in Как вычесть один список из другого?:
@prakash Заменяйте списки на свои список которые для кастрации и усекновений, VAR_LIST т.е везде в коде на свои значения заменить, список для сравнения VAR_LIST_1 соответственно свое название списка везде в коде. он сравнивает каждый элемент из него со списком для резки.
Первый скрипт с циклами работает, а вот второй, к великому моему сожалению, неправильно строки удаляет (не все удаляет, некоторые строки пропускает и они остаются в списке)
-
@prakash А я предупредил=) он убирает не по значению, а по номеру строки, ну индексу который.
0_1558881810383_rand_.xml
По факту это три цикла, filter хоть и метод, но такой себе метод) он на больших значениях будет медленнее удаляющего по индексу. Можете использовать этот, или в том убратьbreak;
тогда он будет перебирать их полностью от начала и до
обедаконца.
На будущее всегда старайтесь указать максимально что вам нужно, нужна скорость или качество). Вы не писали что у вас есть повторяющиеся строки. Только при таком раскладе он их оставит.
-
@prakash said in Как вычесть один список из другого?:
Есть 2 списка со строками, нужно из одного вычесть строки содержащиеся во втором списке. Как это реализовать?
Попробуй свой список добавить в конец поверочноного. Удалить дубли. Отрезать все что ниже поверочного. Это будет твой отредактированый
-
Спасибо товарищу f0cus за предоставленный скрипт здесь, робит норм) Но есть проблема, нужно, чтобы он результаты не только в лог писал, но и в файл. Судя по всему за вывод переменной в лог отвечает этот код из скрипта:
for(i=0;i<VAR_LIST.length;i++){ log(VAR_LIST[i]) }
а как дописать еще запись в файл переменной VAR_LIST в этом цикле?))) не шарю в синтаксисе прост.
-
Большие списки лучше спец софтом чистить типо этих https://forum.antichat.ru//threads/129360/
-
@woodsborow said in Как вычесть один список из другого?:
for(i=0;i<VAR_LIST.length;i++){
log(VAR_LIST[i])
}[[L]] = []; for(i=0;i<VAR_LIST.length;i++){ [[L]].push( VAR_LIST[i]) ); }
[[L]] - это потом через действие список в файл