Mathematica. Знакомство со списками

Элементарное введение в Wolfram Language

(язык программирования системы Mathematica)

Mathematica

перейти к содержанию

3. Знакомство со списками

В Wolfram Language списки (lists) - это основной способ объединения объектов. {1,2,3} - список чисел. Списки не выполняют никаких действий над объектами, это лишь способ хранить их как единое целое. Поэтому, если вы введете список и запустите программу на выполнение, то результатом будет тот же самый список.
ln[1]:={1,2,3,4,a,b,c}
Out[1]={1,2,3,4,a,b,c}

Функция ListPlot строит график на основании списка чисел.

График списка чисел {1, 1, 2, 2, 3, 4, 4}:

График списка {10, 9, 8, 7, 3, 2, 1}:

Функция Range создает список чисел.

Создание списка целых чисел от 1 до 10:
ln[1]:=Range[10]
Out[1]={1,2,3,4,5,6,7,8,9,10}

Создание списка целых чисел от 1  до 20 и построение его графика:

Функция Reverse меняеть порядок элементов в списке на обратный:
ln[1]:=Reverse[{1,2,3,4}]
Out[1]={4,3,2,1}

Изменение порядка элементов в списке:
ln[1]:=Reverse[Range[10]]
Out[1]={10,9,8,7,6,5,3,2,1}

Построение графика перевернутого списка:

Функция Join объединяет элементы списков в один список:
ln[1]:=Join[{1,2,3},{4,5},{6,7}]
Out[1]={1,2,3,4,5,6,7}

Объединение элементов списков в один:
ln[1]:=Join[{1,2,3},{1,2,3,4,5}]
Out[1]={1,2,3,1,2,3,4,5}

Объединение элементов двух списков, созданных с помощью Range:
ln[1]:=Join[Range[3],Range[5]]
Out[1]={1,2,3,1,2,3,4,5}

Построение графика трех списков после объединения их элементов в один список:

Переворачиваем второй список перед объединением:

Справочник

{1,2,3,4} список
ListPlot[{1,2,3,4}] построение графика списка
Range[10] список из ряда последовательных чисел
Reverse[{1,2,3}] изменение порядка элементов списка на обратный
Join[{4,5,6},{2,3,2}] объединение элементов списков в один список

Упражнения

3.1 Создайте список {1, 2, 3, 4} с помощью функции Range

3.2 Создайте список из последовательных целых чисел от 1 до 100

3.3 Создайте список {4, 3, 2, 1}, используя Range и Reverse

3.4 Создайте список из целых чисел от 1 до 50, записанных в обратном порядке.

3.5  С помощью Range, Reverse и Join создайте список {1, 2, 3, 4, 4, 3, 2, 1}.

3.6 Постройте график списка из целых чисел, возрастающих от 1 до 100, а затем убывающих до 1.

3.7 С помощью Range и RandomInteger создайте список случайной длины, не превосходящей 10.

3.8 Упростите запись Reverse[Reverse[Range[10]]].

3.9 Упростите запись Join[{1, 2}, Join[{3, 4}, {5}]].

3.10 Упростите запись Join[Range[10], Join[Range[10], Range[5]]].

3.11 Упростите запись Reverse[Join[Range[20], Reverse[Range[20]]]].

x3.1 Вычислите перевертыш от перевертыша списка {1, 2, 3, 4}.

x3.2 С помощью Range, Reverse и Join создайте список {1, 2, 3, 4, 5, 4, 3, 2, 1}.

x3.3 С помощью Range, Reverse и Join создайте список {3, 2, 1, 4, 3, 2, 1, 5, 4, 3, 2, 1}.

x3.4 Постройте график списка {10, 11, 12, 13, 14}

x3.5 Найдите более простую форму записи выражения Join[Join[Range[10], Reverse[Range[10]]], Range[10]]

Вопросы и ответы

Как произносится запись {1, 2, 3}?

Обычно "Список 1 2 3". Символы "{" и "}" называются фигурными скобками, причем "{" - открывающая, а "}" - закрывающая фигурная скобка.

Является ли список функцией?

Да. {1, 2, 3} - это List[1, 2, 3]. Но в отличие, скажем, от Plus, List ничего не вычисляет, а лишь возращает данные без изменений.

Что отображает ListPlot?

Значения элементов переданного списка, при этом x -  номер элемента списка, а y - это значение элемента с номером х.

Какой максимальной длины может быть список?

Длина списка ограничена только вашим желанием и размером памяти компьютера.

Примечания

  • Range[m, n] генерирует последовальные целые числа от m до n. Функция Range[m, n, s] генерирует целые числа от m до n с шагом s.
  • Многие языки программирования содержат конструкции, похожие на списки в Wolfram (часто их называют "arrays" (массивы)). Но они, как правило, могут состоять только из заранее определенных элементов, например, из чисел. Вы не можете создать список вроде {a, b, c}, не пояснив при этом, что такое a, b и c. Но в нашем случае такое создание возможно, так как Wolfram Language является символическим (symbolic) языком.
  • Списки {a, b, c}  и {b, c, a} являются различными из-за порядка элементов.
  • Как и в математике, в Wolfram Language вы можете формулировать теоремы о функциях. Например, Reverse[Reverse[x]] равно x при всех возможных списках x.

предыдущая глава           следующая глава

Перевод с дополнениями: И.Колемаев

источник http://www.wolfram.com/language/elementary-introduction/03-first-look-at-lists.html

перейти к содержанию

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *