WolframLang: Get Parts of List

By Xah Lee. Date: . Last updated: .

There are many functions that extract sub-expression:

Get Parts by Index

the Part function is the most versatile and most frequently used function to get part of a expression.

Part[expr, i]
(Short syntax: expr[[i]])

ith part of expr. If i is negative, count from right. Part

x = {a, b, c, {d1, d2}, e};
Part[x, 2] === b

(* short syntax *)
x[[2]] === b

(* count from right *)
x[[-2]] === {d1, d2}
Part[expr, {a, b, c}]
(Short syntax: expr[[{a, b, c}]])

Same as {Part[expr, a], Part[expr, b], Part[expr, c]}

x = {a, b, c, {d1, d2}, e};
x[[{2,-1}]] === {b, e}
Part[expr, a, b, c]
(Short syntax: expr[[a, b, c]])

same as Part[Part[Part[expr, a], b], c]

x = {a, b, c, {d1, d2}, e};
x[[4,1]] === d1
Part[expr, m;;n]
(Short syntax: expr[[m;;n]])

(note: a;;b is short for Span[a,b])

parts m through n. If m is omitted, default to beginning. If n is omitted, default to end.

x = {a, b, c, {d1, d2}, e};
x[[2;;4]] === {b, c, {d1, d2}}
  • expr[[m;;]] → part m to end
  • expr[[;;n]] → beginning to n
  • expr[[;;,j]] → column j
  • expr[[m1;;n1,m2;;n2]] → submatrix
(* column 1 *)
{{a,b},{c,d}}[[;;,1]] === {a, c}

Get Parts by Selection Function

Select
Get elements by a filter function Select
Select[ {3,4,5,6}, EvenQ ] === {4, 6}

Select[ Range[20], PrimeQ ] === {2, 3, 5, 7, 11, 13, 17, 19}
Select[
 {{3}, {0, 23}, {9}, {4,5,6}},
 Function[ Length[#] === 2 ]
] === {{0, 23}}

Get Parts by Pattern

Cases
Get elements by Pattern Cases
Cases[ {a, f[3], f[9]}, f[_] ] === {f[3], f[9]}

Cases[ {a, f[3], g[4], f[5]}, _[_] ] === {f[3], g[4], f[5]}

Cases[ {{2}, {4, 8}, {c}}, {_ , _} ] === {{4, 8}}

Other convenient functions by index

First
get first element. First
Last
get last element. Last
Most
get all elements except last. Most
Rest
get all elements except first. Rest
Take
take nth to mth item Take
Drop
Return a list with nth to mth dropped Drop

List

WolframLang in Depth

Basics

Comment, Print

String

Arithmetic

List

Expression, Atom, Head

Boolean

Conditional

Variable

Loop

Data Structure

Function

Pattern Matching

Advanced

Shell Tasks

Misc