FirstPosition[expr,pattern]
给出 expr 中匹配 pattern 的第一个元素的位置,如果无法找到这样的元素,则给出 Missing["NotFound"].
FirstPosition[expr,pattern,default]
如果无法找到与 pattern 匹配的元素,给出 default.
FirstPosition[expr,pattern,default,levelspec]
仅查找出现在由 levelspec 指定的层的对象.
FirstPosition[pattern]
表示 FirstPosition 的运算符形式,可以应用到表达式.
FirstPosition
FirstPosition[expr,pattern]
给出 expr 中匹配 pattern 的第一个元素的位置,如果无法找到这样的元素,则给出 Missing["NotFound"].
FirstPosition[expr,pattern,default]
如果无法找到与 pattern 匹配的元素,给出 default.
FirstPosition[expr,pattern,default,levelspec]
仅查找出现在由 levelspec 指定的层的对象.
FirstPosition[pattern]
表示 FirstPosition 的运算符形式,可以应用到表达式.
更多信息和选项
- 在 FirstPosition[expr,pattern,default] 中,仅在无法找到匹配 pattern 的元素时运算 default.
- 表达式 expr 可以是列表、关联或任何其他类型的表达式. 如果是关联的话,FirstPosition 会给出键值.
- FirstPosition 默认的层规范是 {0,Infinity},且 Heads->True.
- 由 FirstPosition 返回的部分规范 {} 表示 expr 的全部.
- FirstPosition[list,pattern,{1},Heads->False] 仅能查找 list 中作为完整元素出现的对象的位置.
- FirstPosition 使用标准层规范:
-
n 层 1 至 n Infinity 层 1 至 Infinity {n} 仅层 n {n1,n2} 层 n1 至 n2 - 正层 n 由 n 个指标指定的 expr 的所有部分组成.
- 负层 -n 由深度为 n 的 expr 的所有部分组成.
- 层 0 对应于整个表达式.
- 在默认选项设置 Heads->True 下,FirstPosition 查看的是表达式的头部和它们的部分.
- FirstPosition 按照深度优先的顺序遍历表达式.
- FirstPosition[pattern][expr] 等价于 FirstPosition[expr,pattern].
范例
打开所有单元 关闭所有单元基本范例 (3)
FirstPosition[{a, b, a, a, b, c, b}, b]FirstPosition[{{a, a, b}, {b, a, a}, {a, b, a}}, b]FirstPosition[{x, y, z}, b]FirstPosition[{1 + x ^ 2, 5, x ^ 4, a + (1 + x ^ 2) ^ 2}, x ^ _]求 Association 中的第一个位置:
FirstPosition[<|{1 -> 1 + x ^ 2, 2 -> <|"a" -> x ^ 2|>, 3 -> x ^ 4, 4 -> a + (1 + x ^ 2) ^ 2}|>, x ^ _]范围 (4)
FirstPosition[_Integer][{1, 1, f[a], 2, 3, y, f[8], 9, f[10]}]FirstPosition[<|"a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4|>, _Integer ? PrimeQ]FirstPosition[{1, 2, 3}, _ ? StringQ, "NoStrings"]FirstPosition[{{1, 2}, {2, 3}, {3, 1}}, 3]FirstPosition[{{1, 2}, {2, 3}, {3, 1}}, 3, Missing["NotFound"], {1}]选项 (1)
Heads (1)
默认情况下,FirstPosition 将搜索表达式的头部:
FirstPosition[x ^ 2 + y ^ 2, Power]FirstPosition[x ^ 2 + y ^ 2, Power, Heads -> False]属性和关系 (3)
FirstPosition[{1015177, "Junk", EndOfFile}, _ ? PrimeQ, Print["CriticalError"];$Failed]FirstPosition[{1015177, 2015177, 3015177}, _ ? PrimeQ, Print["CriticalError"];$Failed]基于 FirstPosition 的结果,使用 Extract 提取部分:
u = {1 + x^2, 5, x^4, a + (1 + x^2)^2};FirstPosition[u, x ^ _]Extract[u, %]FirstPosition 仅返回第一个位置:
FirstPosition[{a, b, b, a, a, c}, a]Position 返回所有位置:
Position[{a, b, b, a, a, c}, a]FirstPosition 可以被 Position 和 Replace 组合起来实现:
FirstPosition[{a, b, b, a, a, c}, b]
FirstPosition[{a, b, b, a, a, c}, d]Replace[Position[{a, b, b, a, a, c}, b], {{} :> Missing["NotFound"], l_ :> First[l]}]
Replace[Position[{a, b, b, a, a, c}, d], {{} :> Missing["NotFound"], l_ :> First[l]}]可能存在的问题 (1)
FirstPosition 基于模式搜索,这可能与数值相等不同:
FirstPosition[Range[-1, 1, 0.05], 0.1]利用 Condition 写一个模式,强制搜索基于数值相等:
FirstPosition[Range[-1, 1, 0.05], n_ /; n == 0.1]相关指南
-
▪
- 列表元素
相关链接
文本
Wolfram Research (2014),FirstPosition,Wolfram 语言函数,https://reference.wolfram.com/language/ref/FirstPosition.html.
CMS
Wolfram 语言. 2014. "FirstPosition." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/FirstPosition.html.
APA
Wolfram 语言. (2014). FirstPosition. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/FirstPosition.html 年
BibTeX
@misc{reference.wolfram_2026_firstposition, author="Wolfram Research", title="{FirstPosition}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FirstPosition.html}", note=[Accessed: 12-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_firstposition, organization={Wolfram Research}, title={FirstPosition}, year={2014}, url={https://reference.wolfram.com/language/ref/FirstPosition.html}, note=[Accessed: 12-July-2026]}