Фильтрация элементов массива. Функция Filter
Функция Filter является одним из вариантов поиска по образцу среди элементов массива. Здесь не требуется точного совпадения элемента и образца, достаточно, чтобы строка - образец содержалась в строке, заданной элементом массива. Поскольку совпадений может быть достаточно много, то результатом является массив отфильтрованных элементов. Некоторые детали будут пояснены при описании аргументов функции Filter. Вот ее синтаксис:
Filter(sourcearray, match[, include[, compare]])
Ее параметры имеют следующий смысл:
- sourcearray - одномерный массив, элементы которого являются строками. Он может быть получен, например, как результат расщепления строки в массив.
- match - образец поиска. Строка, вхождение которой ищется в каждом элементе исходного массива.
- include - необязательный аргумент булевого типа. По умолчанию имеет значение True, означающее, что элементы, удовлетворяющие образцу, входят в результирующий массив. Если задано значение False, то результирующий массив составляется из элементов, не удовлетворяющих образцу.
- compare - имеет обычный смысл.
В качестве результата возвращается массив отфильтрованных элементов.
Наш пример будет представлять расширенный вариант уже приводившейся процедуры SplitAndJoin:
Пример 8.3.
(html, txt)
Вот результаты отладочной печати:
А это веселая птица - синица, которая часто ворует пшеницу, которая в темном чулане хранится в доме, который построил Джек которая часто ворует пшеницу, которая в темном чулане хранится в доме, который построил Джек А это веселая птица - синица