List in TCL

There are following ways to set a list of variables in a variable.

##Normally we define a list of variables in this format.
set variable {value1 value2 ….. valuen}

set variable “value1 value2 ….. valuen”

##If you have variables in list.
set variable [list value1 value2 …… valuen]

##When you deal with a file where you are looking for a pattern then use below.
set variable [split <item separated by a character> <split_character>]

Let’s understand how we handle the list of variables.

Append an item in a list

If you already have a list of variables and you are looking to add few more items in it at the end, then use below.

Syntax: lappend variable_name variable_value

EG.

set currencies “Rupee Dollar Euro Pound”
lappend currencies Dinar Taka Ruble Yen
puts $currencies

Result: Rupee Dollar Euro Pound Dinar Taka Ruble Yen

Length of a list

IF you are looking to find out the length of the list, then use below command.

Syntax: llength $variable

EG.

set currencies “Rupee Dollar Euro Pound”
puts [llength $currencies]

Result: 4

List item at Index

If you are looking for a variable from list and you know the index of this variable, then use below command.

Syntax: lindex variable index

EG.

set currencies “Rupee Dollar Euro Pound”
puts [lindex $currencies 1]

Result: Dollar

Insert item at an index

If you want to insert an item at any point in the list, then use the index value to place the variable there. If you want to insert the new variable value, then you can use lappend command.

Syntax: linsert variable_name index variable_vlaues

EG.

set currencies “Rupee Dollar Euro Pound”
set currencies [linsert $currencies 3 Yen]
puts $currencies

Result: Rupee Dollar Euro Yen Pound

Replace item at an index

If you want to replace any item with the index, then use below command.

Syntax: lreplace variable_name index variable_value

EG.

set currencies “Rupee Dollar Euro Yen Pound”
set currencies [lreplace $currencies 3 Ruble]

Result: Rupee Dollar Euro Ruble Pound

Set an item at an index

If one wants to insert a variable in any index place use below command. This command is similar to lreplace.

Syntax: lset variable_name index variable_value

EG.

set currencies “Rupee Dollar Euro Yen Pound”
lset currencies 3 Ruble
puts $currencies

Result: Rupee Dollar Euro Ruble Pound

Assign the variable values in list to variables

If one wants to set all the variable values from list to a bunch of variables, then use below command.

Syntax: lassign variable_name variable1 variable2 variable3 …. variablen

EG.

set currencies “Rupee Dollar Euro Pound”
lassign $currencies currency1 currency2 currency3 currency4
puts “$curency1 $currency2 $currency3 $currency4”

Result: Rupee Dollar Euro Pound

Sorting a list

If there are variable values present and we want to sort them, then use below command.

Syntax: lsort $variable_name

EG.
set currencies “Rupee Dollar Euro Pound”
lsort $currencies

Result: Dollar Euro Pound Rupee

Admin
Admin

Leave a Reply