嵌套列表

{list1,list2,...}列表的列表
Table[expr,{i,m},{j,n},...]expr 的值构成的 m×n×... 表格
Array[f,{m,n,...}] 的值构成的 m×n×... 数组
Normal[SparseArray[{{i1,j1,...}->v1,...},{m,n,...}]]
m×n×... 数组,元素
Outer[f,list1,list2,...]对与 f 结合的元素进行的一般外层求积操作
Tuples[list,{m,n,...}]list 得到的元素组成的所有 m×n×... 数组

构建嵌套列表的方式.

这里产生一个表格,对应于一个2×3嵌套列表.
In[1]:=
Click for copyable input
Out[1]=
这里产生对应于相同嵌套列表的数组.
In[2]:=
Click for copyable input
Out[2]=
没有在稀疏数组中明确指定的元素为 .
In[3]:=
Click for copyable input
Out[3]=
最终列表的每个元素包含从每个输入列表的元素.
In[4]:=
Click for copyable input
Out[4]=

函数如 ArraySparseArrayOuter 总是产生完全数组,其中在特定层的所有子列表都具有相同的长度.

Dimensions[list]完全数组的维度
ArrayQ[list]测试在给定层上的所有子列表是否具有相同长度
ArrayDepth[list]所有子列表具有相同长度

完全数组的函数.

Mathematica 可以处理任意嵌套列表. 列表没有必要形成一个完全数组. 使用 Table 可以很容易地形成不规则的数组.

这里产生一个三角数组.
In[5]:=
Click for copyable input
Out[5]=
Flatten[list]压平 list 的所有层
Flatten[list,n]压平前 n
ArrayFlatten[list,rank]从由数组构成的数组构建压平的数组

对子列表和子数组进行压平操作.

这里产生一个2×3数组.
In[6]:=
Click for copyable input
Out[6]=
Flatten 根据索引的字典顺序放置元素.
In[7]:=
Click for copyable input
Out[7]=
这里从一个块矩阵生成矩阵.
In[8]:=
Click for copyable input
Out[8]=
Transpose[list]list 的前两层进行转置
Transpose[list,{n1,n2,...}]在第 层放入 list 中的第 k

在嵌套列表上对不同层进行转置操作.

这里产生一个2×2×2数组.
In[9]:=
Click for copyable input
Out[9]=
这里对不同层进行重排,以使得第3层出现在第1层.
In[10]:=
Click for copyable input
Out[10]=
这里恢复原来的数组.
In[11]:=
Click for copyable input
Out[11]=
Map[f,list,{n}]在第 n 层上对所有元素进行 f 映射
Apply[f,list,{n}]对第 n 层上的所有元素应用 f
MapIndexed[f,list,{n}]在第 n 层上的部分元素以及索引上映射 f

在嵌套函数上应用函数.

这是一个嵌套列表.
In[12]:=
Click for copyable input
在第2层对函数 进行映射.
In[13]:=
Click for copyable input
Out[13]=
这里在第二层应用函数.
In[14]:=
Click for copyable input
Out[14]=
这里对列表的部分元素和它们的索引应用 .
In[15]:=
Click for copyable input
Out[15]=
Partition[list,{n1,n2,...}]分成 ××... 的块
PadLeft[list,{n1,n2,...}]在左边填充以生成一个 ××... 数组
PadRight[list,{n1,n2,...}]在右边填充以生成一个 ××... 数组
RotateLeft[list,{n1,n2,...}]在第 k 层向左轮换 个位置
RotateRight[list,{n1,n2,...}]在第 k 层向右轮换 个位置

在嵌套列表上的操作.

这是一个嵌套列表.
In[16]:=
Click for copyable input
这里在每一层旋转不同的量.
In[17]:=
Click for copyable input
Out[17]=
这里用零进行填充,以生成一个2×3×3数组.
In[18]:=
Click for copyable input
Out[18]=
New to Mathematica? Find your learning path »
Have a question? Ask support »