Span

i;;j

represents a span of elements i through j.

i;;

represents a span from i to the end.

;;j

represents a span from the beginning to j.

;;

represents a span that includes all elements.

i;;j;;k

represents a span from i through j in steps of k.

i;;;;k

represents a span from i to the end in steps of k.

;;j;;k

represents a span from the beginning to j in steps of k.

;;;;k

represents a span from the beginning to the end in steps of k.

Details

  • m[[i;;j;;k]] is equivalent to Take[m,{i,j,k}].
  • m[[i;;j]]=v can be used to reset a span of elements in a list or other expression.
  • When used in Part, negative i and j count from the end.
  • In i;;j, i;;j;;k, etc., i and j can be of the form UpTo[n].
  • Any argument of Span[] can be All, in which case it is interpreted as returning the largest possible number of elements consistent with any possible value of that argument.

Examples

open allclose all

Basic Examples  (3)

Take a span of elements from a list:

Take every third element:

Assign to a span of elements:

Assign a sequence of different elements:

Scope  (7)

Negative indices count from the end:

A negative step size extracts elements in reverse order:

Take all elements from the third position to the end:

Take the first five characters:

Take every other element:

Use UpTo to restrict the right endpoint of the span to the length of the list:

Use UpTo to restrict the left endpoint of the span to the length of the list:

Properties & Relations  (4)

All in the first argument of Span is equivalent to the value 1:

All in the second argument of Span is equivalent to the value -1:

All in the third argument of Span is equivalent to the value 1 or -1:

The value is chosen to given a non-empty range:

When operating on the expression expr, UpTo[n] is equivalent to Min[n,Length[expr]]:

Verify the equivalence:

In this case, only the element b is extracted:

Introduced in 2007
 (6.0)
 |
Updated in 2017
 (11.2)