WOLFRAM

SelectFirst[data,crit]

gives the first ei of data for which crit[ei] is True, or Missing["NotFound"] if none is found.

SelectFirst[data,critprop]

returns the property prop of the selected elements.

SelectFirst[data,crit,default]

gives default if there is no ei of data such that crit[ei] is True.

SelectFirst[crit]

represents an operator form of SelectFirst that can be applied to an expression.

Details

  • SelectFirst keeps the first element for which the given criterion crit is True:
  • SelectFirst[data,crit] is equivalent to First[Select[data,crit]].
  • The data can have the following additional forms and interpretations:
  • {e1,e2,}list of values »
    f[e1,e2,]any head f »
    Associationassociation of values »
    QuantityArray[]quantity array or other structured array
    Tabular[]type-consistent tabular data »
    TabularColumn[]type-consistent column data »
    Dataset[]general hierarchical data
  • The property prop can have the following forms and interpretations:
  • "Element"the selected values »
    "Index"indices of the selected values »
    "BitVectorMask"Boolean mask returning True for slected values and False otherwise »
    {prop1,prop2,}a list of multiple forms »
    Allan association giving element, index and bit vector mask »
  • In SelectFirst[data,crit,default], default is only evaluated if there is no ei in data such that crit[ei] is True.
  • SelectFirst[crit][data] is equivalent to SelectFirst[data,crit].

Examples

open allclose all

Basic Examples  (6)Summary of the most common use cases

Select the first element that is even:

Out[1]=1

Return the index of the selected element:

Out[1]=1

Give the default x when no even numbers are found:

Out[1]=1

Use the operator form of SelectFirst:

Out[1]=1

SelectFirst operates on values in an Association:

Out[1]=1

Use SelectFirst with a Tabular object:

Out[1]=1
Out[2]=2
Out[3]=3

Scope  (15)Survey of the scope of standard use cases

Basic Uses  (5)

Find the first pair containing x:

Out[1]=1

Use a pure function to test elements:

Out[1]=1

Use an operator form as selection criterion:

Out[1]=1

Use SelectFirst in operator form:

Out[1]=1

Use a custom default value:

Out[1]=1

Input Data  (5)

SelectFirst works with any head, not just List:

Out[1]=1

SelectFirst works on values in Association:

Out[1]=1

SelectFirst works with vector SparseArray objects:

Out[1]=1
Out[2]=2

SelectFirst works with TabularColumn objects:

Out[1]=1

Select the first date in November:

Out[2]=2

Use SelectFirst on a Tabular object with named columns:

Out[1]=1

Select the first row with last column date being a business day:

Out[2]=2
Out[3]=3

Property Forms (5)

Return the selected element:

Out[1]=1

Return the index of the selected element:

Out[1]=1

Return the Boolean mask of the data:

Out[1]=1
Out[2]=2

Return two forms:

Out[1]=1

Return the association with all the properties:

Out[1]=1

Applications  (7)Sample problems that can be solved with this function

Select the first number between 9 and 99 that equals 1 modulo both 3 and 5:

Out[3]=3

Select the first 4-tuple that reads the same in reverse:

Out[1]=1

Find the first 3×3 matrix of 0s and 1s that has determinant 1:

Out[1]=1

Select an eigenvalue that lies within the unit circle:

Out[1]=1

Find the first built-in Wolfram Language object whose name is at least 36 characters long:

Out[1]=1

Select the first numeric quantity from a product:

Out[1]=1

Find the position of the first prime in a random sample from a PoissonDistribution:

Out[1]=1

Find the distribution of positions of first primes:

Out[3]=3
Out[4]=4

Properties & Relations  (4)Properties of the function, and connections to other functions

The default value is only evaluated if needed:

Out[1]=1
Out[2]=2

SelectFirst returns only the first match:

Out[1]=1

Select returns all matches:

Out[2]=2

SelectFirst can be implemented with a combination of Select and Replace:

Out[1]=1
Out[1]=1
Out[2]=2
Out[2]=2

SelectFirst is similar to FirstCase except that it uses a function instead of a pattern:

Select the first list that has a sum of elements less than 10:

Out[3]=3

Use FirstCase to get the same result:

Out[4]=4

Possible Issues  (1)Common pitfalls and unexpected behavior

The head of the input expression is not preserved:

Out[5]=5
Wolfram Research (2014), SelectFirst, Wolfram Language function, https://reference.wolfram.com/language/ref/SelectFirst.html (updated 2025).
Wolfram Research (2014), SelectFirst, Wolfram Language function, https://reference.wolfram.com/language/ref/SelectFirst.html (updated 2025).

Text

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

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

CMS

Wolfram Language. 2014. "SelectFirst." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/SelectFirst.html.

Wolfram Language. 2014. "SelectFirst." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2025. https://reference.wolfram.com/language/ref/SelectFirst.html.

APA

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

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

BibTeX

@misc{reference.wolfram_2025_selectfirst, author="Wolfram Research", title="{SelectFirst}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SelectFirst.html}", note=[Accessed: 29-May-2025 ]}

@misc{reference.wolfram_2025_selectfirst, author="Wolfram Research", title="{SelectFirst}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/SelectFirst.html}", note=[Accessed: 29-May-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_selectfirst, organization={Wolfram Research}, title={SelectFirst}, year={2025}, url={https://reference.wolfram.com/language/ref/SelectFirst.html}, note=[Accessed: 29-May-2025 ]}

@online{reference.wolfram_2025_selectfirst, organization={Wolfram Research}, title={SelectFirst}, year={2025}, url={https://reference.wolfram.com/language/ref/SelectFirst.html}, note=[Accessed: 29-May-2025 ]}