Элементарное введение в Wolfram Language
(язык программирования системы 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