Lists in Tcl are fundamental data structures that allow you to manage ordered collections of items. They can include a variety of item types, even other lists. Tcl handles lists as strings and processes them to form individual elements as needed.
Here are different ways to create a list in Tcl:
set listName {item1 item2 item3}
set listName [list item1 item2 item3]
set listName [split "item1,item2,item3" ","]
set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1
puts $colorList2
puts $colorList3
red green blue
red green blue
red green blue
To append an item to a list, you can use:
lappend listName value
set var orange
lappend var blue
lappend var red
lappend var green
puts $var
orange blue red green
To find the number of items in a list, use:
llength listName
set var {orange blue red green}
puts [llength $var]
4
To retrieve an item at a specific index from a list, use:
lindex listName index
set var {orange blue red green}
puts [lindex $var 1]
blue
To insert items at a specific position in a list, use:
linsert listName index value1 value2 ...
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
orange blue red black white green
To replace items in a list between specific indices, use:
lreplace listName firstIndex lastIndex value1 value2 ...
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
orange blue black white
To extract a sublist from a list, use:
lrange listName firstIndex lastIndex
set var {orange blue red green}
puts [lrange $var 1 3]
blue red green
To set the value of an item at a specific index, use:
lset listName index value
set var {orange blue red green}
lset var 0 black
puts $var
black blue red green
To assign values from a list to individual variables, use:
lassign listName var1 var2 ...
set var {orange blue red green}
lassign $var color1 color2
puts $color1
puts $color2
orange
blue
To sort the items in a list, use:
lsort listName
set var {orange blue red green}
set var [lsort $var]
puts $var
blue green orange red
To find the index of an item in a list, use:
lsearch listName value
set var {orange blue red green}
puts [lsearch $var red]
puts [lsearch $var yellow]
2
-1
Write a Tcl script to manage a basket of fruits (list). Initially, the basket is empty, and you will fill it with various fruits. Then, perform the following operations: