指標によるリストの操作
| Part[list,spec] または list[[spec]] | リストの部分 |
| Part[list,spec1,spec2,...] または list[[spec1,spec2,...]] | ネストしたリストの部分 |
| n | 最初から n 番目の部分 |
| -n | 最後から n 番目の部分 |
| {i1,i2,...} | 部分のリスト |
| m;;n | m から n までの部分 |
| All | 部分すべて |
リストの部分の抽出
| Out[1]= |  |
| Out[3]= |  |
これはこれらそれぞれの最初の部分のリストを与える.
| Out[4]= |  |
| Out[5]= |  |

の最初の2つの部分を与える.
| Out[6]= |  |
| Out[7]= |  |
| Out[8]= |  |
| Out[9]= |  |
のような割当てを使うとリストの一部をいつでも再設定することができる.
これは

の部分1,2を再設定する.
| Out[10]= |  |
これにより

の形はこうなった.
| Out[11]= |  |
これは部分1を

に,部分3を

に再設定する.
| Out[12]= |  |
これは部分1と3の両方を

に再設定する.
| Out[13]= |  |
これは

のもとの形を回復する.
これは,

で指定したすべての部分を再設定する.
| Out[15]= |  |
;;を用いて指定範囲のすべての指標を示すことができる.
| Out[16]= |  |
ネストしたリストを,全体が空間に置かれている各要素は座標の指標で与えられた位置にある,と考えると便利なことがある.このように考えると
を直接幾何学的に解釈できるようになる.
が単一の整数なら,それは k 番目の次元の単一スライスを抽出することを表し,これがリストの場合は平行スライスのリストを抽出することを表す.
の最終結果は連続する次元をスライスして取得した要素の集合になる.
これは二次元配列として置かれたネストしたリストである.
Out[17]//TableForm= |
| |  |
Out[18]//TableForm= |
| |  |
Partはネストしたリストの構造化されたスライスを取り出しやすいように設定されている.しかし,場合によっては個々の部分の任意の集合を取り出したいこともあるだろう.そのような場合はExtractを使うとよい.
| Part[list,{i1,i2,...}] | リスト |
| Extract[list,{i1,i2,...}] | 要素  |
| Part[list,spec1,spec2,...] | 連続スライスによって指定された部分 |
| Extract[list,{{i1,i2,...},{j1,j2,...},...}] | 個々の部分のリスト |
スライスの取得と個々の部分の取得
| Out[19]= |  |
Extractの重要な機能に,Positionのような関数で返されるのと同じ形の部分の位置のリストを取るというものがある.
これは

における位置のリストを与える.
| Out[21]= |  |
| Out[22]= |  |
| Take[list,spec] | リスト中の指定の部分を取り出す |
| Drop[list,spec] | リスト中の指定の部分を除く |
| Take[list,spec1,spec2,...],Drop[list,spec1,spec2,...] | ネストしたリストの各レベルにおける指定部分を取り出したり除いたりする |
| n | 最初の n 個の要素 |
| -n | 最後の n 個の要素 |
| {n} | 要素 n のみ |
| {m,n} | m 番目から n 番目までの要素(両要素を含む) |
| {m,n,s} | m 番目から n 番目までの要素刻み幅 s で |
| All | 全部の部分 |
| None | 何も取り出さない |
リスト中の連続する要素の抽出と除去
| Out[23]= |  |
| Out[24]= |  |
Partと同じようにTakeやDropもネストしたリストの連続したレベルで一連のスライスを取り出すと見ることができる.TakeやDropを使って配列における要素のブロックを扱うこともできる.
Out[25]//TableForm= |
| |  |
Out[26]//TableForm= |
| |  |
Out[27]//TableForm= |
| |  |
Out[28]//TableForm= |
| |  |
| Prepend[list,elem] | list の頭に element を加える |
| Append[list,elem] | list の末尾に element を加える |
| Insert[list,elem,i] | 位置 i に element を挿入する |
| Insert[list,elem,{i,j,...}] | 位置 に挿入する |
| Delete[list,i] | 位置 i の要素を除去する |
| Delete[list,{i,j,...}] | 位置 の要素を除去する |
リストへの要素の挿入とリストからの要素の除去
これはリスト中の要素2,1を

にする.
| Out[29]= |  |
| Out[30]= |  |
| ReplacePart[list,i->new] | list の位置 i の要素を new で置換する |
| ReplacePart[list,{i,j,...}->new] | を new で置換する |
| ReplacePart[list,{i1->new1,i2->new2,...}] | 位置 の部分を で置換する |
| ReplacePart[list,{{i1,j1,...}->new1,...}] | 位置 の部分を で置換する |
| ReplacePart[list,{{i1,j1,...},...}->new] | すべての部分 を new で置換する |
リストの部分の置き換え
これはリストの3番目の要素を

で置換する.
| Out[31]= |  |
これはリストの最初と4番目の部分を置換する.複数の部分の指定には二重リストが必要である.
| Out[32]= |  |
| Out[33]= |  |
これは行列の2,2要素を

で置換する.
| Out[34]= |  |
ReplacePartは常に新しいリストを生成するということを理解しておかなければならない.これは
が行うように,すでにシンボルに割り当てられたリストを変更したりはしない.
値のリストを

に割り当てる.
| Out[35]= |  |
第3要素が

で置換されたリストのコピーである.
| Out[36]= |  |

の値は変わっていない.
| Out[37]= |  |