Главная Длительная эволюция [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [ 34 ] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] Удалить элемент списка без его замещения новым элементом можно с помощью функции Delete. А именно Delete[list, к] приводит к удалению из списка элемента, стоящего на к-и месте. Как и у функций Insert и ReplacePart, задание позиции с помощью списка {kl,k2,...} приводит к удалению элемента, находящегося внутри А;1-го элемента, в нем - внутри А;2-го элемента и т.д. Delete[{a,{l,2,3},b,c},{2,3}] {а,{1,2},Ь,с} Для того чтобы удалить несколько элементов, достаточно задать их позиции, заключенные в общие фигурные скобки. Delete[{a,{l,2,3},b,c},{{2},{3}}] {а, с} Вычисление выражения Drop[list,k] приводит к списку с удаленными к первыми элементами (при положительном к) или последними элементами (при отрицательном к). Если к заключить в фигурные скобки, то Drop подобно Delete удалит только к-й элемент списка, если же вместо к указать список {m,n}, то будут удалены элементы с т-го по п-й. Drop[{x-2,y-2,z-2,u-2},-2] Применение функции Rest к списку приводит к новому списку, в котором отсутствует первый элемент прежнего: Rest[{l,2,3}] {2,3} Наиболее общей функцией, применяемой для извлечения элементов из списков, является функция Part. Выражение Part[list,k] дает элемент, стоящий на к-и месте списка. Если нужно извлечь элемент из внутренних списков или из неатомарных элементов списка, то вместо числа к указывается последовательность kl, к2, ... Part[{a,Sin[x + y]},2,l,2] У Роль функции Drop в паре {Delete, Drop} по отношению к функции Part играет функция Take. {Part[{a, b, с}, 2], Таке[{а, b, с}, 2]} {6,{а,Ь}} Функция First извлекает первый, а функция Last - последний элемент из списка. Действие описанных только что функций основано на позиции элементов списка. Функция Select опирается на свойство элементов удовлетворять заданному критерию. Этот критерий представляет собой предикат, являющийся вторым аргументом рассматриваемой функции. Select[{a, -3, Cos[x], 37, {u,v},15}, NumberQ] {-3,37,15} Если третьим аргументом у функции Select задано натуральное число п, то в получаемый список войдут только первые п элементов, удовлетворяющие критерию. Select[{a, -3, Cos[x], 37, {u, v}, 15}, NumberQ, 2] {-3,37} Обратить порядок элементов в списке можно с помощью функции Reverse, в то время как функция Sort располагает элементы в соответствии с принятым в „Математике" порядком. Вкратце этот порядок можно охарактеризовать, сказав, что числа в нем располагаются первыми и по величине, а буквы алфавита - в алфавитном порядке. Reverse[{c,3,a}] {о,3,с} Sort[{c,3,a}] {3,а,с} Функции RotateLeft и RotateRight производят циклическое перемещение элементов списка влево или вправо на указанное в качестве второго аргумента этих функций число элементов. RotateLeft[{a, b, с, d), 2] {c,d,a,b} Узнать, сколько раз некоторый элемент elem встречается в списке, можно с помощью функции Count. Count[{a,b,a},a] 2 Обратимся теперь к функциям, которые рассматривают список скорее как множество, а не как упорядоченную структуру. Вообще говоря, в списке могут содержаться совпадающие элементы. Применение к нему функции Union приводит к удалению повторений элементов и к сортировке оставшихся. Solve[x5 - 7х-4 + 19x3 - 25x2 -I- 1бх - 4,х] {{il},{il},{x-l},{i->2},{i-2}} Union[Solve[x5 - 7x4+19x3 - 25x2 + 16х - 4,х]] {{х1},{х2},} Если в качестве аргументов функции Union указать несколько списков, то результатом будет их теоретико-множественное объединение: Union[{a,b,c,a},{b,3}] {3,а,6,с} Сказанное относительно повторяющихся элементов и сортировке справедливо и по отношению к функциям Intersection и Complement, порождающим пересечение и дополнение списков. Выражение Complement[list,listl,list2,...] порождает список элементов списка list, не содержащихся ни в одном из списков listl, list2 и т.д. [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [ 34 ] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] 0.0009 |