Иллюстрированный самоучитель по Mathematica

Комбинирование списков и работа с множествами


Иногда возникает необходимость комбинирования нескольких списков. Для этого используются следующие функции:

  • 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 удобно использовать при решении нелинейных и алгебраических уравнений для удаления повторяющихся решений.

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



Содержание раздела