# FirstPosition

FirstPosition[expr,pattern]

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

FirstPosition[expr,pattern,default]

gives default if no element matching pattern is found.

FirstPosition[expr,pattern,default,levelspec]

finds only objects that appear on levels specified by levelspec.

FirstPosition[pattern]

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 .
• 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:
•  n levels 1 through n Infinity levels 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 , FirstPosition includes heads of expressions and their parts.
• FirstPosition traverses expressions in depthfirst order.
• FirstPosition[pattern][expr] is equivalent to FirstPosition[expr,pattern].

# Examples

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)

By default, FirstPosition will search expression heads:

Use the option 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, https://reference.wolfram.com/language/ref/FirstPosition.html.

#### Text

Wolfram Research (2014), FirstPosition, Wolfram Language function, https://reference.wolfram.com/language/ref/FirstPosition.html.

#### CMS

Wolfram Language. 2014. "FirstPosition." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FirstPosition.html.

#### APA

Wolfram Language. (2014). FirstPosition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FirstPosition.html

#### BibTeX

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

#### BibLaTeX

@online{reference.wolfram_2024_firstposition, organization={Wolfram Research}, title={FirstPosition}, year={2014}, url={https://reference.wolfram.com/language/ref/FirstPosition.html}, note=[Accessed: 20-June-2024 ]}