Tcl8.6.6/Tk8.6.6 Documentation > Tcl Commands, version 8.6.6 > lrange

Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API


lrange — Return one or more adjacent elements from a list


lrange list first last


List must be a valid Tcl list. This command will return a new list consisting of elements first through last, inclusive. The index values first and last are interpreted the same as index values for the command string index, supporting simple index arithmetic and indices relative to the end of the list. If first is less than zero, it is treated as if it were zero. If last is greater than or equal to the number of elements in the list, then it is treated as if it were end. If first is greater than last then an empty string is returned. Note: “lrange list first first” does not always produce the same result as “lindex list first” (although it often does for simple fields that are not enclosed in braces); it does, however, produce exactly the same results as “list [lindex list first]


Selecting the first two elements:

% lrange {a b c d e} 0 1
a b

Selecting the last three elements:

% lrange {a b c d e} end-2 end
c d e

Selecting everything except the first and last element:

% lrange {a b c d e} 1 end-1
b c d

Selecting a single element with lrange is not the same as doing so with lindex:

% set var {some {elements to} select}
some {elements to} select
% lindex $var 1
elements to
% lrange $var 1 1
{elements to}


list, lappend, lindex, linsert, llength, lsearch, lset, lreplace, lsort, string


element, list, range, sublist
Copyright © 1993 The Regents of the University of California. Copyright © 1994-1996 Sun Microsystems, Inc. Copyright © 2001 Kevin B. Kenny <kennykb(at)>. All rights reserved.