Комбинирование списков и работа с множествами
Иногда возникает необходимость комбинирования нескольких списков. Для этого используются следующие функции:
- Complement [list, list1, list2,…] – возвращает список list с элементами, которые не содержатся ни в одном из списков list1, Iist2,…;
- Intersection [list1, list2,…] (пересечение множеств) – возвращает упорядоченный список элементов, общих для всех списков listi;
- Join[list1, list2,… ] – объединяет списки в единую цепочку (выполняет конкатенацию). Join может применяться к любому множеству выражений, имеющих один заголовок;
- Union [list1, Iist2,…] (объединение множеств) – удаляет повторяющиеся элементы списков и возвращает отсортированный список всех различающихся между собой элементов, принадлежащих любому из данных списков listi. Функция обеспечивает теоретико-множественное объединение списков;
- Union [list] – возвращает отсортированный вариант списка list, из которого удалены все повторяющиеся элементы.
Приведенные ниже примеры иллюстрируют применение функций комбинирования списков.
Ввод (In) | Вывод (Out) |
---|---|
Complement [ {1, 2, 3, 4, 5}, {1, а, 2}, {b, с, 5}] 11={1.2.3.4.5}; 12={а,b,3.4,с}; |
{ 3, 4 } |
Intersection [11, 12] | {3, 4} |
Join [11, 12] | (1, 2, 3, 4, 5, a, b, 3, 4, c} |
Union[{1.2.4.3.2.7.3.5}] | {1.2, 3, 4, 5, 7} |
Union[{3.2},{1.4}] | (1, 2, 3, 4} |
Union[{a,b,c,a},{l,d,3}] | {1, 3, a, b, c, d} |
Комбинирование списков позволяет создавать сложные структуры данных из более простых структур. Это может быть полезно при построении очередей, деревьев и иных структурных построений. Кроме того, приведенные функции обеспечивают основные операции со множествами. Функцию Union удобно использовать при решении нелинейных и алгебраических уравнений для удаления повторяющихся решений.
Ряд других функций этого урока перечислен в приложении. В целом можно сделать вывод, что обилие функций работы со списками позволяет решать практически любые задачи, в основе которых лежат манипуляции со списками, стеками и другими родственными типами данных.