TreeExtract

TreeExtract[tree,pos]

提取 treepos 指定的位置处的子树.

TreeExtract[tree,{pos1,pos2,}]

提取 tree 的子树列表.

TreeExtract[tree,pos,h]

提取 tree 的子树,并把 h 应用到每个子树.

TreeExtract[pos]

表示 TreeExtract 的算符形式, 可将其应用于树.

更多信息

  • TreeExtract 允许在 Tree 对象中的任何位置提取子树的属性.
  • 对于整数 ijTreeExtract[tree,{i,j,}] 提取位置 {i,j,} 处的子树. »
  • TreeExtract 可使用 TreePosition 返回的位置指定以及在 TreeInsertTreeReplacePart 等函数中使用的扩展形式. »
  • 可用 {part1,part2,} 给出单个位置 pos,其中,部分位置指定 parti 包括:
  • ii 个孩子
    -i从末尾算起的第 i 个孩子
    {i1,i2,}位置编号为 i1i2 的孩子的列表
    All所有孩子
    m;;nmn 的孩子
    "key"键为 "key" 的孩子
    Key[k]具有任意键 k 的孩子
    TreeLevel[levelspec]levelspec 指定的层上的子树
    TreeCases[pattern]数据与 pattern 匹配的子树
    TreeSelect[crit]crit 给出 True 的子树
  • TreeExtract[tree,{p1,p2,}] 中,如果所有的 pi 都是列表,则 {p1,p2,} 被解释为单个位置指定的列表 ,{p1,p2,} 将被视为单个位置指定. »
  • 提取一个层级的多个部分的指定将保留该层级的数据. »
  • TreeExtract 适用于含有子树 Association 的树,使用与 Part 中相同的键规范. »
  • TreeExtract[pos][tree] 等价于 TreeExtract[tree,pos].

范例

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

基本范例  (4)

提取树的第二个孩子:

提取任意位置上的子树:

提取几个位置上的一系列子树:

在连续的层级上分别进行提取:

使用 TreeExtract 的算符形式:

范围  (23)

部分规范  (9)

提取第一个孩子:

提取倒数第二个孩子:

提取所有孩子:

提取奇数位置的孩子:

Key 指定位置:

如果键为字符串,则不需要 Key

提取一个层级范围上的子树:

提取与数据模式匹配的子树:

提取恰好有两个孩子的子树:

用不同的指定进行提取:

单个与多个位置  (3)

提取树的单个子树:

提取树的多个子树:

提取位置 {1,3} 的子树:

提取树的第一个和第三个子树:

从树中提取长度为一的位置列表:

提取树的多个子树:

涉及所有的形式  (2)

提取第二个孩子的孩子:

等价方式:

提取每个孩子的第二个孩子:

提取每个孩子的第一个和第三个孩子

分别提取每个孩子的第一个和第三个孩子:

All 提取将保留该层上的数据:

关联  (5)

通过键从含有关联的树提取子树:

如果键为字符串,则 Key 封装不是必须的:

通过键从含有关联的树提取子树:

通过位置从含有关联的树提取子树:

从含有关联的树提取几个子树:

从含有关联的树提取嵌套子树:

从含有关联的树提取几个嵌套子树:

跨度和子列表  (4)

提取列表的第三个到第五个孩子:

提取奇数位置的孩子:

从每个孩子中提取前三个孩子:

从每个孩子中提取第一个和最后一个孩子:

提取第二到第四个孩子的第一个孩子:

提取第一个、第三个和第四个孩子的第二个孩子:

提取最后三个孩子的第一个、第二个和第五个孩子:

提取每个孩子的第一个和第五个孩子:

属性和关系  (10)

从表达式中的头部构造一棵树:

TreeExtract 提取树的子树:

这对应于提取表达式的子表达式:

Extract 可以直接提取子表达式:

如果 pos 不是列表,则 pos{pos} 是等效的规范:

对于整数列表 {i,j,}TreeExtract[tree,{i,j,}] 等价于 @TreeExtract[j]@TreeExtract[i]@tree:

TreeExtract[tree,{{i1,j1,},{i2,j2,},}] 等价于 {TreeExtract[tree,{i1,j1,}],TreeExtract[tree,{i2,j2,}],}:

这扩展到空列表:

提取位置 {} 提取整棵树:

如果重复提及某个位置,则 TreeExtract 重复提取子树:

TreeExtract 可以使用 TreePosition 返回的位置列表:

TreeExtract[tree,{pos1,pos2,},h] 中,h 对在每个 posi 处提取子树的结果进行封装:

TreeExtract[tree,pos,h] 中,h 对在位置 pos 处提取子树的结果进行封装:

提取一个层级上的多个部分的规范将保留该层级的数据:

如果所有 pi 都是列表,TreeExtract[tree,{p1,p2,}]{p1,p2,} 视为单个位置指定:

对于 {{1,2},{3,4}},则提取位置 {1,2}{3,4} 上的子树:

如果任意一个 pi 不是列表,{p1,p2,} 被视为一组部分 (part) 指定:

对于 {{{1,2},{3,4}}},则提取部分 12 的部分 34

可能存在的问题  (2)

TreeExtract[tree,{}] 将返回一个空的子树列表,因为位置列表是空的:

TreeExtract[tree,{{}}] 提取位置 {} 处的子树,该位置指的是整个树:

第二个参数中列表的列表始终被解释为位置规范列表:

因此,在 Part 中等价的规范可能会被 TreeExtract 区别对待:

如果 PartTreeExtract 之间的一致性是必要的,需使用列表的列表并删除末尾额外的列表:

Wolfram Research (2021),TreeExtract,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeExtract.html (更新于 2022 年).

文本

Wolfram Research (2021),TreeExtract,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TreeExtract.html (更新于 2022 年).

CMS

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

APA

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

BibTeX

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

BibLaTeX

@online{reference.wolfram_2024_treeextract, organization={Wolfram Research}, title={TreeExtract}, year={2022}, url={https://reference.wolfram.com/language/ref/TreeExtract.html}, note=[Accessed: 17-November-2024 ]}