Nushell Niceties: Adding Indices To Lists
The Nushell command enumerate
adds an index value to each item in a list. The index value is stored in an extra column named index
. You can use this column to filter data based on the index value.
In the following examples you can see several use cases of the enumerate
command:
use std/assert
# enumerate adds a column with the name index
# to a list of items.
assert equal ([a b c] | enumerate) [[index item]; [0 a] [1 b] [2 c]]
# Works also with for example numbers.
assert equal ([0 1 2] | enumerate) [[index item]; [0 0] [1 1] [2 2]]
# With a table as input the output is a new table with columns index and item.
let input = [[name age]; [Alice 29] [Bob 42]]
assert equal ($input | enumerate) [[index item]; [0 {name: Alice age: 29}] [1 {name: Bob age: 42}]]
# A single record shows the column names index and item.
assert equal ([a b c] | enumerate | first) {index: 0, item: a}
# You can use the new index column to filter data.
assert equal ([a b c] | enumerate | where index > 1) [[index item]; [2 c]]
Written with Nushell 0.105.1.