Skip to content

Extract ​

The part of expr at position pos, or a list of parts at several positions.

✓ checked against that system · ! checked, with disagreements (hover a chip)Wolfram LanguageExtract✓
Extract(expr, pos)the part at pos — a bare integer, or a {i, j, …} path drilling into nested operands
Extract(expr, {{pos1}, {pos2}, …})the LIST of parts at each of several positions, one per element
Typed signatures
TypePackageApplies
(any, any) -> anycombinatoricsalways

Domain: Collections

Details
  • Same 1-based, negative-counts-from-the-end indexing as At/Part.
  • Disambiguated Wolfram's own way: pos is a single path unless every one of its own elements is itself a List, in which case it's a list of paths.
  • Extract(expr, {}) is expr itself — the trivial, zero-step path.

Examples

Basic #
live ↗
InExtract([[a,b],[c,d]],[2,1])\mathrm{Extract}(\bigl\lbrack\bigl\lbrack a, b\bigr\rbrack, \bigl\lbrack c, d\bigr\rbrack\bigr\rbrack, \bigl\lbrack2, 1\bigr\rbrack)Outcc

A one-element position list picks out that single part

live ↗
InExtract([1,2,3,4],[2])\mathrm{Extract}(\bigl\lbrack1, 2, 3, 4\bigr\rbrack, \bigl\lbrack2\bigr\rbrack)Out22
Scope #
live ↗
InExtract([a,b,c],−1)\mathrm{Extract}(\bigl\lbrack a, b, c\bigr\rbrack, -1)Outcc
live ↗
InExtract([[a,b],[c,d]],[[1,1],[2,2]])\mathrm{Extract}(\bigl\lbrack\bigl\lbrack a, b\bigr\rbrack, \bigl\lbrack c, d\bigr\rbrack\bigr\rbrack, \bigl\lbrack\bigl\lbrack1, 1\bigr\rbrack, \bigl\lbrack2, 2\bigr\rbrack\bigr\rbrack)Out[a,d]\bigl\lbrack a, d\bigr\rbrack
live ↗
InExtract([a,b,c,d,k],[3])\mathrm{Extract}(\bigl\lbrack a, b, c, d, k\bigr\rbrack, \bigl\lbrack3\bigr\rbrack)Outcc
live ↗
InExtract([a,b,c,d,k],[[1],[4],[3]])\mathrm{Extract}(\bigl\lbrack a, b, c, d, k\bigr\rbrack, \bigl\lbrack\bigl\lbrack1\bigr\rbrack, \bigl\lbrack4\bigr\rbrack, \bigl\lbrack3\bigr\rbrack\bigr\rbrack)Out[a,d,c]\bigl\lbrack a, d, c\bigr\rbrack
About
Examples6
Checked againstWolfram Language 6 agree
CrosswalkWolfram Language

See also: ReplacePart, Level