Или через xpath
alt text
@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]] - это потом через действие список в файл