Partition

Partition[list,n]

将列表 list 划分成不重叠的长度为 n 的子列表.

Partition[list,n,d]

生成偏移量为 d 的子列表.

Partition[list,{n1,n2,}]

把嵌套列表划分成大小为 n_(1)×n_(2)× 的列表块.

Partition[list,{n1,n2,},{d1,d2,}]

在列表 list 的第 i 层,使用偏移量 di.

Partition[list,n,d,{kL,kR}]

指定列表 list 中的第一个元素应该出现在第一个子列表的 kL 位置,列表 list 中的最后一个元素应该出现在最后一个子列表中的 kR 位置或者其之后,如果需要附加的元素,Partition 循环填充列表 list.

Partition[list,n,d,{kL,kR},x]

尽可能地重复填充元素 x.

Partition[list,n,d,{kL,kR},{x1,x2,}]

尽可能地循环填充 xi.

Partition[list,n,d,{kL,kR},{}]

不用任何填充,则可以生成具有不同长度的子列表.

Partition[list,nlist,dlist,{klistL,klistR},padlist]

指定嵌套列表中的对齐方式和填充规则.

更多信息

  • Partition[list,n,d] 生成的所有子列表的长度都为 n. 因此列表 list 的最后一些元素可能不在任何子列表中出现.
  • Partition[list,UpTo[n]] 将列表划分成长度最多为 n 的子列表,最后一个子列表可以比其它的短.
  • Partition[list,n,1] 生成的所有 list 元素都显示在子列表中.
  • 如果 Partition[list,n,d] 中的 d 大于 n,位于列表 list 的中间的元素会忽略. »
  • 可以将子列表的长度指定为 UpTo[n],这样,如果列表元素少于 n 个,可以返回较短的子列表.
  • Partition[list,n,d,{kL,kR}] 实际上允许具有自由长度的子列表超出列表 list 的开头或者末端部分.
  • Partition[list,n,d,k] 等价于 Partition[list,n,d,{k,k}].
  • {kL,kR} 的通常设置是:
  • {1,-1}不容许突出长度
    {1,1}末端允许最大的突出
    {-1,-1}开头允许最大的突出
    {-1,1}开始和末端允许最大的突出
  • Partition[list,n,d,{kL,kR},padlist] 先将 padlist 复制出多个副本,在每个副本前添加一个 list,然后对结果进行划分. »
  • padlist 的通常设置是:
  • x通过重复单个元素来填充
    {x1,x2,}通过循环重复一列元素来填充
    list循环 list 来填充(默认)
    {}不填充,使子列表具有不同的长度
  • 如果 list 的长度为 s,则 Partition[list,n,d] 生成 Max[0,Floor[(s+d-n)/d]] 子列表.
  • Partition[list,{n1,n2,,nr}] 有效地替换 list 中第 r 层的元素块为相邻元素的 r 层嵌套列表. »
  • 如果没有指定偏移量,则相邻区域是连接和非重叠的.
  • Partition[list,{n1,n2,},d] 在每层使用偏移量 d.
  • Partition[list,nlist,dlist,{{kL 1,kL 2,},{kR 1,kR 2,}}] 制定列表 list 中的元素 {1,1,} 应该出现在结果的 {1,1,}{kL 1,kL 2,} 位置, 而 list 中的元素 {-1,-1,} 应该出现在结果的 {-1,-1,} 块的 {kR 1,kR 2,} 位置上或之后.
  • {kL,kR} 可等价于 {{kL,kL,},{kR,kR,}}.
  • {{k1,k2,}} 可等价为 {{k1,k2,},{k1,k2,}}.
  • Partition[list,{n1,n2,,nr},klist,padlist] 实际上生成一个深度为 r,若干 padlist 副本组成的列表,然后将 list 置于其上,再分割结果.
  • 如果 list 具有维数 {s1,s2,,sr},则 Partition[list,{n1,n2,,nr}] 具有维数 {q1,q2,,qr,n1,n2,,nr},其中 qiFloor[si/ni] 给出.
  • 对象 list 不一定要有头部 List. »
  • Partition 可用于 SparseArray 对象.

范例

打开所有单元关闭所有单元

基本范例  (4)

分成长度为 2 的子列表:

分成长度为 3,以1为偏移量的子列表:

以 1 为偏移量,把一个二维序列分成 2×2 列表块:

允许最后一个列表比其他列表短:

范围  (18)

填充  (7)

不完整的子列表的末端处默认被舍去:

允许进行粗放式划分,最后一个子列表可以比其它的短:

循环处理列表:

x 填充:

重复 {x,y,z} 块来填充:

不进行填充,则最后的子列表可能会很短:

Nothing 填充,得到同样的结果:

从末尾划分,并且不使用填充:

填充对齐方式  (6)

在末端插入填充:

在开始插入填充:

在两边都插入填充:

不插入填充:

设置第一个子列表的第二个位置开始,最后一个子列表的第一个位置结束:

以重复放置 {x,y} 的副本来填充:

多维数组  (5)

分割成 2×2 块:

以 1 为偏移量分成 2×2 的列表块,并在行和列的末尾填充 xx

以 1 为偏移量分成 2×2 列表块,数组在两个维度上循环变化:

在列的开头和行的结尾部分插入填充:

在列的开头和结尾,及行的结尾部分插入填充:

推广和延伸  (4)

用大于列表块长度的偏移量来跳过一些元素:

填充的长度可以大于列表块的长度:

头部不一定是 List

PartitionSparseArray 对象起作用:

应用  (5)

在二维空间内分割放置一个列表:

找出一个列表中的连续元素对:

找出列表中的连续比例:

执行一个基本单元的自动填充:

将一维元素按照指定的维数分成多维列表:

创建一个连续整数的多维列表:

重构一个矩阵:

属性和关系  (3)

FlattenPartition 相反:

Partition 结果的子列表有同样的长度:

UpTo 允许在末尾有更短的列表:

TakeList 允许指定子列表的长度:

ListCorrelate[ker,list] 能有效地把 ker 和分割后的 list 组合在一起:

Partition 以 1 为偏移量把 ker 分割成段:

Dot 组合每个段的核心:

ListConvolve 功能相似,除核心部分是颠倒的:

Wolfram Research (1988),Partition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Partition.html (更新于 2015 年).

文本

Wolfram Research (1988),Partition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Partition.html (更新于 2015 年).

CMS

Wolfram 语言. 1988. "Partition." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/Partition.html.

APA

Wolfram 语言. (1988). Partition. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Partition.html 年

BibTeX

@misc{reference.wolfram_2024_partition, author="Wolfram Research", title="{Partition}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/Partition.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_partition, organization={Wolfram Research}, title={Partition}, year={2015}, url={https://reference.wolfram.com/language/ref/Partition.html}, note=[Accessed: 22-November-2024 ]}