gives the position of the first element in expr that matches pattern, or Missing["NotFound"] if no such element is found.


gives default if no element matching pattern is found.


finds only objects that appear on levels specified by levelspec.


represents an operator form of FirstPosition that can be applied to an expression.

Details and Options

  • In FirstPosition[expr,pattern,default], default is evaluated only if no element matching pattern is found.
  • The expression expr can be a list, an association, or any other type of expression. In the case of an association, FirstPosition gives a key.
  • The default level specification for FirstPosition is {0,Infinity}, with Heads->True.
  • A part specification {} returned by FirstPosition represents the whole of expr.
  • FirstPosition[list,pattern,default,{1},Heads->False] finds positions only of objects that appear as complete elements of list.
  • FirstPosition uses standard level specifications:
  • nlevels 1 through n
    Infinitylevels 1 through Infinity
    {n}level n only
    {n1,n2}levels n1 through n2
  • A positive level n consists of all parts of expr specified by n indices.
  • A negative level -n consists of all parts of expr with depth n.
  • Level 0 corresponds to the whole expression.
  • With the default option setting Heads->True, FirstPosition includes heads of expressions and their parts.
  • FirstPosition traverses expressions in depthfirst order.
  • FirstPosition[pattern][expr] is equivalent to FirstPosition[expr,pattern].


open allclose all

Basic Examples  (3)

Find the first position at which b occurs:

Find the first position at which x to any power appears:

Find the first position in an Association:

Scope  (4)

Use a position operator:

Find the first position with a prime value:

Specify a custom default value:

Look for 3 anywhere:

Look for only a 3 that appears as an element of the outermost list:

Options  (1)

Heads  (1)

By default, FirstPosition will search expression heads:

Use the option Heads->False to exclude them:

Properties & Relations  (3)

The default value is only evaluated if needed:

Use Extract to extract parts based on results from FirstPosition:

FirstPosition returns only the first position:

Position returns all positions:

FirstPosition can be implemented with a combination of Position and Replace:

Possible Issues  (1)

FirstPosition searches based on patterns, which may not be the same as numerical equality:

Write a pattern using Condition to force searching based on numerical equality:

Wolfram Research (2014), FirstPosition, Wolfram Language function,


Wolfram Research (2014), FirstPosition, Wolfram Language function,


Wolfram Language. 2014. "FirstPosition." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2014). FirstPosition. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_firstposition, author="Wolfram Research", title="{FirstPosition}", year="2014", howpublished="\url{}", note=[Accessed: 20-June-2024 ]}


@online{reference.wolfram_2024_firstposition, organization={Wolfram Research}, title={FirstPosition}, year={2014}, url={}, note=[Accessed: 20-June-2024 ]}