lsort
Sorts a list and returns the sorted result.
Syntax
tcl
lsort ?options? listParameters
- list: The list to sort
Options
Sort type
- -ascii: Dictionary-style string comparison (default)
- -dictionary: Natural sort that handles embedded numbers (e.g., "a2" before "a10")
- -integer: Compare as integers
- -real: Compare as floating-point numbers
Sort order
- -increasing: Ascending order (default)
- -decreasing: Descending order
Result control
- -indices: Return the sorted indices instead of the sorted values
- -unique: Remove duplicate values from the result
Sub-list sorting
- -index indexSpec: Sort by a specific element within each sub-list. The indexSpec can be a number (0-based),
end,end-N, or a list of indices for nested access - -stride length: Treat the list as groups of
lengthelements, sorting by the first element of each group. Length must be at least 2
Custom comparison
- -command cmdName: Use a custom comparison procedure. The procedure must take two arguments and return a negative integer, zero, or positive integer
Modifiers
- -nocase: Case-insensitive comparison (works with -ascii and -dictionary)
Examples
Sort strings alphabetically
Output
Sort numbers as integers
Output
Sort in descending order
Output
Case-insensitive sort
Output
Remove duplicates
Output
Sort floating-point numbers
Output
Combine options
Output
Dictionary sort with embedded numbers
Output
Sort by sub-list element
Output
Sort by sub-list element as integers
Output
Get sorted indices
Output
Sort with stride (key-value pairs)
Output
Sort stride pairs by value
Output
Custom comparison command
Output
