TreeMapAt

TreeMapAt[f,tree,pos]

f 应用于tree 中由 pos 指定的位置处的数据.

TreeMapAt[f,tree,{pos1,pos2,}]

f 应用于多个位置处的数据.

TreeMapAt[f,pos]

表示可以应用于树的 TreeMapAt 的算符形式.

更多信息和选项

  • TreeMapAt 将函数应用于 Tree 对象中任意位置处的部分数据.
  • TreeMapAt[f,tree,{i,j,}] 将函数 f 应用于位置 {i,j,} 处的数据.
  • TreeMapAt 可使用由 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 的子树
  • TreeMapAt[f,tree,{p1,p2,}] 中,如果所有的 pi 都是列表,则 {p1,p2,} 被解释为单个位置指定的列表,否则,{p1,p2,} 将被视为单个位置指定. »
  • TreeMapAt 适用于含有子树 Association 的树,使用与 Part 中相同的键规范. »
  • 如果在位置列表中多次出现该位置,则 TreeMapAtt 将对特定位置重复应用 f. »
  • TreeMapAt[f,pos][tree] 等价于 TreeMapAt[f,tree,pos].
  • TreeMapAt 的选项与 Tree 的选项相同.

范例

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

基本范例  (3)

f 映射于树的第二个孩子的数据:

映射到任意位置:

映射到多个位置:

使用 TreeMapAt 的算符形式:

范围  (14)

部分指定  (9)

映射到第一个孩子:

映射到从末尾算起的第二个孩子:

映射到所有的孩子:

映射到奇数位置:

Key 指定位置:

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

映射到一定范围内的各个层:

映射到与模式匹配的数据:

映射到整好有两个孩子的子树:

用不同的指定进行映射:

关联  (5)

通过键映射包含关联的树:

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

通过键映射包含关联的树:

通过位置映射包含关联的树:

映射包含关联的树的多个子树:

映射包含关联的树的嵌套子树:

映射包含关联的树的几个嵌套子树:

属性和关系  (8)

TreeMap[f,tree,levelspec] 等价于 TreeMapAt[f,tree,TreeLevel[levelspec]]

根据表达式的标头构建一棵树:

TreeMapAt 映射到树的子树的数据:

这对应于映射到表达式的标头和叶子:

MapAt 可直接映射到标头和叶子:

如果 pos 不是一个列表,pos{pos} 是等价的指定:

TreeMapAt[f,tree,{{i1,j1,},{i2,j2,},}] 等价于 @TreeMapAt[f,{i2,j2,}]@TreeMapAt[f,{i1,j1,}]@tree

这也适用于空列表:

{} 位置进行映射会将函数应用于根节点的数据:

如果一个位置被重复提及,则 TreeMapAt 重复应用 f

TreeMapAt 可使用由 TreePosition 返回的位置列表:

以下是 TreeExtract 返回的数据:

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

对于 {{1,2},{3,4}},位置 {1,2}{3,4} 处的数据将被修改:

如果任意一个 pi 不是列表,则 {p1,p2,} 被视为 part specifications 的列表:

对于 {{{1,2},{3,4}}},part 12 的 part 34 将被修改:

可能存在的问题  (2)

TreeMapAt[f,tree,{}] 不映射 f,因为位置列表是空的:

TreeMapAt[f,tree,{{}}]f 映射到位置 {},对应的是根节点:

第二个参数中列表的列表总是被解释为位置指定列表:

因此,在 Part 中等价的指定可能会被 TreeMapAt 区别对待:

如果需要 PartTreeMapAt 之间保持一致,请使用列表的列表:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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