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