lindex - Retrieve an element from a list
lindex list ?index ...?
lindex(1t) Tcl Built-In Commands lindex(1t)
______________________________________________________________________________
NAME
lindex - Retrieve an element from a list
SYNOPSIS
lindex list ?index ...?
______________________________________________________________________________
DESCRIPTION
The lindex command accepts a parameter, list, which it treats as a Tcl
list. It also accepts zero or more indices into the list. The indices
may be presented either consecutively on the command line, or grouped
in a Tcl list and presented as a single argument.
If no indices are presented, the command takes the form:
lindex list
or
lindex list {}
In this case, the return value of lindex is simply the value of the
list parameter.
When presented with a single index, the lindex command treats list as a
Tcl list and returns the index'th element from it (0 refers to the
first element of the list). In extracting the element, lindex observes
the same rules concerning braces and quotes and backslashes as the Tcl
command interpreter; however, variable substitution and command substi-
tution do not occur. If index is negative or greater than or equal to
the number of elements in value, then an empty string is returned. The
interpretation of each simple index value is the same as for the com-
mand string index, supporting simple index arithmetic and indices rela-
tive to the end of the list.
If additional index arguments are supplied, then each argument is used
in turn to select an element from the previous indexing operation,
allowing the script to select elements from sublists. The command,
lindex $a 1 2 3
or
lindex $a {1 2 3}
is synonymous with
lindex [lindex [lindex $a 1] 2] 3
EXAMPLES
Lists can be indexed into from either end:
lindex {a b c} 0
-> a
lindex {a b c} 2
-> c
lindex {a b c} end
-> c
lindex {a b c} end-1
-> b
Lists or sequences of indices allow selection into lists of lists:
lindex {a b c}
-> a b c
lindex {a b c} {}
-> a b c
lindex {{a b c} {d e f} {g h i}} 2 1
-> h
lindex {{a b c} {d e f} {g h i}} {2 1}
-> h
lindex {{{a b} {c d}} {{e f} {g h}}} 1 1 0
-> g
lindex {{{a b} {c d}} {{e f} {g h}}} {1 1 0}
-> g
List indices may also perform limited computation, adding or subtract-
ing fixed amounts from other indices:
set idx 1
lindex {a b c d e f} $idx+2
-> d
set idx 3
lindex {a b c d e f} $idx+2
-> f
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+---------------+------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+------------------+
|Availability | runtime/tcl-8 |
+---------------+------------------+
|Stability | Uncommitted |
+---------------+------------------+
SEE ALSO
list(n), lappend(n), linsert(n), llength(n), lsearch(n), lset(n),
lsort(n), lrange(n), lreplace(n), string(n)
KEYWORDS
element, index, list
NOTES
Source code for open source software components in Oracle Solaris can
be found at https://www.oracle.com/downloads/opensource/solaris-source-
code-downloads.html.
This software was built from source available at
https://github.com/oracle/solaris-userland. The original community
source was downloaded from http://prdownloads.sourceforge.net/tcl/tcl-
core8.6.7-src.tar.gz.
Further information about this software can be found on the open source
community website at https://www.tcl.tk/.
Tcl 8.4 lindex(1t)