列表的分组和填充
对列表中的元素进行分组.
| Out[1]= |  |
| Out[2]= |  |
| Out[3]= |  |
| Out[4]= |  |
| Out[5]= |  |
Partition 遍历一个列表,并把相邻的元素分成子列表. 默认情况下,它没有包含任何令原列表悬空的子列表.
| Out[6]= |  |
| Out[7]= |  |
用户可以告诉 Partition 包含令原列表末尾悬空的子列表. 默认情况下,通过周期性地处理原来的列表,它可以填入其他额外的元素. 它也可以根据用户指定的元素进行填充.
这里包含了另外的子列表,并认为原先的列表是周期性的.
| Out[8]= |  |
这里原列表使用元素

填充.
| Out[9]= |  |
这里使用元素

和

周期性地填充.
| Out[10]= |  |
这里没有引入填充的方法,产生了具有不同长度的子列表.
| Out[11]= |  |
用户可以认为 Partition 是通过在原列表使用模版并选出元素来提取子列表. 用户可以告诉 Partition 在什么位置开始和停止该过程.
| Out[12]= |  |
| Out[13]= |  |
| Partition[list,n,d] 或 Partition[list,n,d,{1,-1}] | 只保留没有悬空的子列表 |
| Partition[list,n,d,{1,1}] | 允许在末尾有悬空 |
| Partition[list,n,d,{-1,-1}] | 允许在开头有悬空 |
| Partition[list,n,d,{-1,1}] | 允许在开头和末尾都有悬空 |
| Partition[list,n,d,{kL,kR}] | 指定第一个和最后一个子列表的对齐 |
| Partition[list,n,d,spec] | 通过在 list 中周期性地重复元素进行填充 |
| Partition[list,n,d,spec,x] | 通过重复元素 x 填充 |
| Partition[list,n,d,spec,{x1,x2,...}] |
| 通过周期性地重复 填充 |
| Partition[list,n,d,spec,{}] | 不使用填充 |
指定对齐和填充.
对齐规格
告诉 Partition 给出子列表的序列,其中原列表的第一个元素在第一个子列表的位置
出现,而原列表的最后一个元素在最后一个子列表的位置
出现.
在第一个子列表中,令

出现在位置1.
| Out[14]= |  |
这里令

出现在第一个子列表的位置2.
| Out[15]= |  |
这里令

首先出现在位置4.
| Out[16]= |  |
| Out[17]= |  |
函数如 ListConvolve 使用与 Partition 相同的对齐和填充规格.
在一些情况下,对列表进行明确的填充插入可能是方便的. 这可以通过使用 PadLeft 和 PadRight 实现.
| PadLeft[list,n] | 通过在左边插入零进行填充,以达到长度 n |
| PadLeft[list,n,x] | 通过重复元素 x 进行填充 |
| PadLeft[list,n,{x1,x2,...}] | 通过周期性地重复 进行填充 |
| PadLeft[list,n,list] | 通过周期性地重复 list 进行填充 |
| PadLeft[list,n,padding,m] | 在右边留出 m 个元素大小的空白 |
| PadRight[list,n] | 在右边插入零进行填充 |
填充列表.
| Out[18]= |  |
这里以填充方式插入

.
| Out[19]= |  |
| Out[20]= |  |
PadLeft、PadRight 和 Partition 都可以用于嵌套列表.
| Out[21]= |  |
| Out[22]= |  |
如果用户给出一个嵌套列表作为填充规格,在每一层周期性地选出它的元素.
| Out[23]= |  |
| Out[24]= |  |