networktestinggenius.tk
Your networking tutor
Exclusive networking testing notes
Learn Networking & Testing topics

A list is an ordered tuple of values.
Defining a List
A list in Tcl consists of a string whose items are separated by white space. For example, this is a list, A B C D E
To assign a list to a variable we can do this,
set list1 {A B C D E}
or this,
set list1 [list A B C D E]
Difference between list and arrays
1.Arrays are accessed using the index, index can be any string (allowed spaces in index). Lists are accessed using the index, index is an integer.
2.Arrays are unordered collections of values Lists are ordered sequence of values.
3.Internally array is maintained as hashes, adding a element to array it will arrange elements in arranged and rearranged in a "tree". If you tried to access the third element of any array the value of that element might change because Tcl's arrays are organized for speedy, convenient access, not for orderly, sequential access.Internally list elements are stored in sequentially.
List operations
set l {a b c d}
puts "length of list is [llength $l]"
puts [lappend l 4 5 d]
puts [lappend l {12 3}]
puts "inserted [linsert $l 3 6]"
puts "range [lrange $l 2 5]"
puts "replace [lreplace $l 6 6 7]"
puts "search [lsearch -all $l d]"
puts "sort [lsort $l]"puts "set [lset l 4 5]"
O/P:
length of list is 4
a b c d 4 5 d
a b c d 4 5 d {12 3}
inserted a b c 6 d 4 5 d {12 3}
range c d 4 5
replace a b c d 4 5 7 {12 3}
search 3 6
sort {12 3} 4 5 a b c d d
set a b c d 5 5 d {12 3}
Programs
Program: Lindex using tcl
TCL Program – count letters in the given string using tcl
set str “LIHAKHDBLICIHJAADFDCSDBBBDFDB”
set l [string length $str]
puts $l
set cnt_A 0
set cnt_B 0
set cnt_C 0
set i 0
while {$i<=$l} {
if {“A”==[string index $str $i]} {
incr cnt_A } elseif {“B”==[string index $str $i]} {
incr cnt_B } elseif {“C”==[string index $str $i]} {
incr cnt_C }
incr i
}
puts “The count of A is $cnt_A \n
The count of B is $cnt_B \n
The count of C is $cnt_C”
set var {Unnikrishnan Srinivas Sujatha}
puts [lindex $var 2]
o/p:Srinivas
Program: Lsort using tcl
puts [lsort -integer {25 12 78}]
puts [lsort -decreasing -integer {25 12 78}]
o/p:12 25 7878 25 12
Program: Llength using tcl
set var “Unnikrishnan Srinivas Sujatha”
puts [llength $var]
o/p:
3
Program: Lreverse using tcl
set var “abc bcd cde xyz”
puts [lreverse $var]
o/p:xyz cde bcd abc
Program: Lreplace using tcl
set result [lreplace {a b {c d} e} 1 2 {W X} Y Z]
puts $result
o/p:a {W X} Y Z e
set result [lreplace {a b {c d} e} 3 3]
puts $result
o/p:a b {c d}
Program: Lrange using tcl
set x {a b {c d} e}
set result1 [lrange $x 1 3]
puts $result1
set result2
[lrange $x 0 1]
puts $result2
o/p:b {c d} ea b
Program: Lsearch using tcl
set x {Unnikrishnan Srinivas Sujatha}
set result1 [lsearch $x Sujatha]
puts $result1
set result2 [lsearch $x Mano]
puts $result2
o/p:2
-1
Program: Lsort using tcl
puts [lsort -integer {10 1 2}]
puts [lsort -decreasing -integer {10 1 2}]
o/p:1 2 1010 2 1
Program: Llength using tcl
set var “abc bcd cde xyz”
puts [llength $var]
o/p:4
Program: Lreverse using tcl
set var “abc bcd cde xyz”
puts [lreverse $var]
o/p:xyz cde bcd abc