Position

Position[expr,pattern]
gives a list of the positions at which objects matching pattern appear in expr.

Position[expr,pattern,levelspec]
finds only objects that appear on levels specified by levelspec.

Position[expr,pattern,levelspec,n]
gives the positions of the first n objects found.

Position[pattern]
represents an operator form of Position that can be applied to an expression.

Details and OptionsDetails and Options

  • Position[expr,pattern] tests all the subparts of expr in turn to try and find ones that match pattern.
  • Position returns a list of positions in a form suitable for use in Extract, ReplacePart, and MapAt. The form is different from the one used in Part.
  • Position looks only for matches to values in Association objects that appear in expr. It returns any part specifications within Association objects in the form Key[k].
  • The default level specification for Position is {0,Infinity}, with Heads->True.
  • A part specification returned by Position represents the whole of expr.
  • Position[list,pattern,{1},Heads->False] finds positions only of objects that appear as complete elements of list.
  • Position uses standard level specifications:
  • nlevels through n
    Infinitylevels through Infinity
    {n}level n only
    {n1,n2}levels through
  • 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 corresponds to the whole expression.
  • With the default option setting Heads->True, Position includes heads of expressions, and their parts.
  • Position traverses expressions in depthfirst order, yielding lists of indices in lexicographic order.
  • Position[pattern][expr] is equivalent to Position[expr,pattern].

ExamplesExamplesopen allclose all

Basic Examples  (4)Basic Examples  (4)

Find the positions at which occurs:

In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=

Find all positions at which to any power appears:

In[1]:=
Click for copyable input
Out[1]=

Find only those down to level 2:

In[2]:=
Click for copyable input
Out[2]=

Find positions in an Association:

In[1]:=
Click for copyable input
Out[1]=

Find positions with prime values:

In[1]:=
Click for copyable input
Out[1]=
Introduced in 1988
(1.0)
| Updated in 2014
(10.0)