Replace
Replace[expr,rules]
应用一个规则或规则列表来转换整个表达式 expr.
Replace[expr,rules,levelspec]
应用规则到 expr 中由 levelspec 指定的部分.
更多信息和选项
- 这些规则必须具有 lhs->rhs 或 lhs:>rhs 的形式.
- 可以给出一个规则列表. 按次序应用规则. 返回第一个应用的规则所得到的结果. 如果没有应用到任何一个规则,则返回原表达式 expr.
- 如果规则列表用嵌套列表的形式给出,Replace 将有效地映射到内层列表上. 因此Replace[expr,{{r11,r12},{r21,…},…}] 等价于{Replace[expr,{r11,r12}],Replace[expr,{r21,…}],…}.
- 用 :> 定义的延时规则可以包含 /; 条件.
- Replace 用标准的层次指定:
-
n 第 1 层到第 n 层 Infinity 第 1 层到 Infinity All 所有层,包括第 0 层 {n} 仅应用第 n 层 {n1,n2} 第 n1 层到第 n2 层 - 在 Replace 中 levelspec 缺省值是 {0},对应于整个表达式.
- 正层的 n 由指标 n 指定的 expr 所有部分组成.
- 负层的-n 由带有深度 n 的 expr 所有部分组成.
- 层 -1 由不带子集的数值、符号和其它对象组成.
- 如果 levelspec 包括多个层,先匹配给定的子表达式中更深层的表达式.
- 选项设置 Heads->True 下,Replace 也作用于表达式的头部和其它部分.
- 对 levelspec 指定的部分应用替换,甚至在它们有 Hold 或相关包装下.
- Replace[rules][expr] 等价于 Replace[expr,rules].
范例
打开所有单元关闭所有单元基本范例 (4)
范围 (15)
替换列表中测试方程的结果为 True 的元素:
Replace 还可用于 RuleDelayed:
Dispatch 可以代替规则列表:
Association 可以代替规则列表:
对 Association 中的所有值应用函数:
反转 Association 中的键和值:
把 Association 的规则提取到列表中:
选项 (2)
应用 (1)
属性和关系 (12)
层规定 All 等价于 {0,-1} 和 {0,∞}:
如果规则与多个层相匹配,Replace 将会对所有匹配子表达式进行转换:
当给定多层时,Replace 使用深度优先搜索扫描表达式:
缺省情况下,Replace 替换整个表达式:
ReplaceAll 替换所有匹配的部分:
带有参数 All 的 Replace 将尝试只对每个子表达式进行一次替换:
ReplaceAll 对所能替换的最大的子表达式进行替换,然后停止操作:
ReplaceRepeated 重复应用 ReplaceAll 直到表达式不再变化为止:
Replace 在特定层进行模式匹配:
ReplacePart 重写指定位置上的子表达式:
ReplaceList 给出所有可能的匹配组成的列表:
Replace 给出第一个标准匹配:
Replace 可以对整个关联进行转换:
Replace 匹配给定层级的个别表达式:
SequenceReplace 匹配第一层的表达式序列:
Replace[expr,lhsrhs] returns a transformed result if and only if MatchQ[expr,lhs] yields True:
文本
Wolfram Research (1988),Replace,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Replace.html (更新于 2014 年).
CMS
Wolfram 语言. 1988. "Replace." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2014. https://reference.wolfram.com/language/ref/Replace.html.
APA
Wolfram 语言. (1988). Replace. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Replace.html 年