Tcl lists tips

This page is part of the Tcl/Tk page of the Airplug documentation.
Back to the Tcl/Tk page / Back to Airplug documentation page.

<br>

A list is defined by

set lst [list a b c d]

Adding an element is done using lappend, which modify the list (here lst variable is referred without $):

lappend lst "e"
puts stdout "lst = $lst" # lst = a b c d e

Replacing some elements can be done using lreplace. However this call does not modify the list. Instead it returns a new list.

set newlst [lreplace $lst 1 2 "z"]
puts stdout "lst = $lst" # lst = a b c d e
puts stdout "newlst = $newlst" # newlst = a z d e

Obtaining the index of an element in a list can be done using lsearch:

set i [lsearch $lst "b"]
puts stdout "i = $i" # i = 1

The following code allows to remove an element from the list (supposing it is unique):

set element "b"
set i [lsearch $lst $element]
set lst [lreplace $lst $i $i]
puts stdout "lst = $lst" # lst = a c d e

Finally, to remove all occurences of a given element, one may proceed as follows:

set lst [list a b c b d b b]
puts stdout "lst = $lst"
set element "b"
while { [set i [lsearch $lst $element]] != -1 } {
  set lst [lreplace $lst $i $i ]
  puts stdout "$element found at index i = $i; now lst = $lst"
}

which gives the following output:

lst = a b c b d b b
b found at index i = 1; now lst = a c b d b b
b found at index i = 2; now lst = a c d b b
b found at index i = 3; now lst = a c d b
b found at index i = 3; now lst = a c d

<br>


This page is part of the Tcl/Tk page of the Airplug documentation.
Back to the Tcl/Tk page / Back to Airplug documentation page.