top of page

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

Lists

© 2015 Thirumurugan

bottom of page