Как вычесть один список из другого?



  • Есть 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]] - это потом через действие список в файл


Log in to reply
 

  • 14
  • 10
  • 12
  • 7
  • 12
  • 8
  • 3
  • 6