Перейти к основному содержимому

Операции над списком

🔗 Оригинальная страница — Источник данного материала


Описание

Списки нужны для получения строк данных из текстового документа, либо для записи данных в файл.

Например, есть файл со списком URL, на которые нужно зайти по очереди. Или же вы парсите какие-то значения с сайта (например, e-mail адреса) и нужно их отсортировать, удалить дубли и сохранить в файл.

Перед началом работы Список необходимо создать

Как создать список?

image-20200807-164347

Как добавить экшен в проект?

Через контекстное меню Добавить действие → Списки → Операции над списком

image-20200820-111456

Для чего используется?

  • Добавление и получение элементов списка
  • Удаление строк и дублей
  • Привязка к файлу
  • Получение количества строк
  • Перемешивание
  • Сортировка значений

Принцип работы

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

Как работать с экшеном?


Выделить подсписок

Выделение части строк из списка.

image-20200807-170447

  • Список. Выбираем список, в который будет сохранен результат.
  • Диапазон. Способ фильтрации подсписка. Также для выбора доступны:
    • Элементы, не содержащие текст.
      Выберет все строки которые не содержат заданный текст. Можно использовать переменные.
    • Элементы, не удовлетворяющие регулярному выражению.
      Критерии поиска задаются с помощью Regex (регулярных выражений).
    • Элементы, содержащие текст.
      Выберет значения, которые содержат необходимый текст. Можно использовать переменные.
    • Элементы, удовлетворяющие регулярному выражению.
      Критерии поиска задаются с помощью Regex (регулярных выражений).
  • Поле для ввода критериев. Указываются значения, соответствующие прошлому пункту.
  • Удалить строки после взятия. Будут удалены строки, которые попали под критерии поиска.
  • Выходить по ошибке, если список пуст. Если список пустой, то выполнение проекта пойдёт по красной ветке.
Пример

Берём из первого списка первые пять строк (нумерация с нуля) и сохраняем во второй список

image-20200813-195131

Список 1 до обработкиСписок 1 послеСписок 2
image-20200813-193740image-20200813-194139image-20200813-194235

Добавить данные из списка

Добавление данных из одного списка в другой.

image-20200807-172333

  • Список. Выбираем список, в который будет сохранен результат.
  • Куда. В какую позицию поместим результат: в конец, в начало, в позицию.
  • В позицию. Если выбрали этот вариант, то в соседнем поле нужно указать номер строки или переменную.
При копировании строки не удаляются из исходного списка.
Пример

Добавим строки из второго списка в конец первого

image-20200813-194752

Список 2Список 1 до обработкиСписок 1 после
image-20200813-194658image-20200813-194906image-20200813-195020

Элементы Списка 2 остаются на месте


Добавить строку

Добавление строки в список.

image-20200807-174114

1. Выбираем список, в который будем добавлять строку.
2. Устанавливаем функцию.
3. Вносим значение или переменную.
4. В какую позицию поместим результат: в конец, в начало, в позицию.
5. Если выбрали в позицию, то в соседнем поле нужно указать номер строки или переменную.
Подчеркнуто красной линией. Значение, которое копируем в данном примере.

Пример

Положим значение в конец первого списка

image-20200813-195500

Список 1 до обработкиСписок 1 после
image-20200813-195623image-20200807-175124

Добавить текст

Добавление текста в список.

image-20200813-201231

1. Выбираем список, в который будем добавлять текст.
2. Устанавливаем функцию.
3. Текст или набор символов для добавления в список, можно указать переменную. 4. В какую позицию поместим результат: в конец, в начало, в позицию.
5. Добавлять пустые строки в случае отсутствия текста.

Пример

Добавим текст в первый список

image-20200813-201439

Список 1 до обработкиСписок 1 после
image-20200807-175812image-20200813-201746

Текст имел разделитель — новая строка, поэтому в список он добавлен построчно


Объединить элементы списка

Объединение элементов списка с указанием разделителя и возможностью записи в переменную.

image-20200813-201948

  • Разделитель.
    • Новая строка. Каждый элемент списка будет записан с новой строки.
    • Свой. Указываем свой текст или символы, которые будут вставлены между элементами списка.
    • Указанный в списке. Используется разделитель из настроек списка.
  • Положить в переменную. Переменная для записи данных после обработки.
Пример

Объединяем элементы первого списка, используя свой разделить -;

image-20200807-180540

Список 1Результат обработки списка в переменной stroka
image-20200813-202132image-20200813-202258

Перемешать элементы списка

В случайном порядке меняет расположение элементов в списке

image-20200807-181123

Изменение позиции не влечет за собой потери значений строки
Пример

Перемешаем элементы Списка 1

image-20200813-202620

До обработкиПосле обработки
image-20200813-202802image-20200807-182605

Получить количество строк

Позволяет узнать количество строк в списке.

image-20200813-203208

Критерии поиска:

  • Все;
  • Не содержат текст;
  • Не удовлетворяет регулярному выражению;
  • Со значением;
  • Содержат текст;
  • Удовлетворяет регулярному выражению;
Переменная всегда будет содержать только цифровое значение.
Пример

Посчитаем количество строк в Списке 1 и положим в переменную

image-20200813-203317

Список 1Результат обработки списка в переменной kolichestvo_strok
image-20200807-183243image-20200813-203602

Получить строку

Эта функция получает строку, а также дает возможность удалить ее из списка и записать в переменную.

image-20200807-184600

  • Критерии поиска:
    • Не содержит текст;
    • Не удовлетворяет регулярному выражению;
    • Первую;
    • По номеру;
    • Случайную;
    • Удовлетворяет регулярному выражению;
  • Удалить строку после взятия. Когда выбранная строка возьмется из списка, то после этого будет удалена.
  • Положить в переменную. Здесь указываем кастомную переменную, в которую мы положим скопированную строку.
Пример

Берём случайную строку из Списка 1 и кладём её в переменную

image-20200813-204726

Список 1Результат обработки списка в переменной stroka
image-20200813-204845image-20200813-204934

Привязать к файлу

Привязка списка к файлу в ходе выполнения проекта.

image-20200807-185422

  • Путь к файлу. Выбираем конкретный файл или указываем переменную, содержащую путь к нему.
  • Создавать файл при отсутствии. Если файл отсутствует по указанному пути, то он будет автоматически создан.
Пример

Список 1 будет привязан файлу по указанному пути

image-20200813-205126


Сортировать

Сортировка элементов списка по убыванию или возрастанию.

image-20200813-205247

  • Сортировать как числа, если это возможно. Использовать принцип сортировки как у чисел.
  • Тип сортировки. По возрастанию или убыванию.
Не всегда буквенные и символьные строки можно упорядочить.
Пример

Сортировать значения Списка 1 по убыванию

image-20200813-205419

До обработкиПосле обработки
image-20200807-185836image-20200813-205535

Сохранить в файл

Сохраняет список в файл.

image-20200813-205723

  • Разделитель. Устанавливает разделитель:
    • Новая строка;
    • Свой;
    • Указанный в списке;
  • Путь к файлу. Выбираем файл или указываем переменную, содержащую путь к файлу.
  • Дописывать в конец файла. Позволяет записывать новые данные в файл или перезаписывать его полностью.
Пример

Сохраняем значения Списка 1 в файл

image-20200813-205753

Список 1Получившийся файл
image-20200807-190441image-20200813-210051

Удалить дубли

Удаление повторяющихся строк в списке.

image-20200813-210234

Для обработки файла с большим количеством строк может потребоваться время.
Пример

Удаляем все дубли в Списке 1

image-20200813-210423

До обработкиПосле обработки
image-20200813-1839381NFJfjUKn7

Удалить строки

Удаляет строки из списка с заданными критериями.

2020-07-25_13-31-21

  • Критерии удаления строк:
    • Все;
    • Не содержащие текст;
    • Не удовлетворяющие регулярному выражению;
    • Первую;
    • Под номерами (можно использовать диапазоны);
    • Со значением;
    • Содержащие текст;
    • Содержащие только пробельные символы;
    • Удовлетворяющие регулярному выражению;
Пример

Удаляем из Списка 1 все строки, содержащие символ @

2020-08-03_20-40-14

До обработкиПосле обработки
2020-08-03_20-54-192020-08-03_20-58-11

Пример использования

Представим, что нам необходимо перейти по всем страницам из списка + собрать их названия + положить в другой список.

2020-08-03_21-07-09

1. Создаём Список_1 с несколькими страницами, предварительно привязав его к файлу.
2. Удаляем дубли, чтобы не переходить на страницу дважды.
3. Создаём Список_2 и привязываем его к файлу.
4. Парсим необходимую информацию со страниц Список_1 и копируем ее в Список_2.
5. Удаляем дубли.

Таким образом можно наполнять списки нужной информации для дальнейшей обработки и использования.


Полезные ссылки

  1. ❗→ Окно переменных
  2. ❗→ Тестер регулярных выражений
  3. ❗→ Список