TCL列表
列表是Tcl的基本可用數據類型之一。它是用於表示項目的有序集合。它可以包括不同類型的在同一列表的項目。此外,一個列表可以包含另一個列表。
需要注意的一個重要的事情是,列表表示爲完全串並處理在需要時,形成的各個項目。所以要避免大的列表,在這種情況下,可使用數組代替。
創建一個列表
列表的一般語法如下。
set listName { item1 item2 item3 .. itemn }
or
set listName [list item1 item2 item3]
or
set listName [split "items separated by a character" split_character]
一些例子如下面給出。
#!/usr/bin/tclsh
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
追加項目到列表
追加項目到列表的語法如下。
append listName split_character value
or
lappend listName value
一些例子如下面給出。
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red"
lappend var "green"
puts $var
當上述代碼被執行時,它會產生以下結果。
orange blue red green
列表長度
列表長度的語法如下。
llength listName
例如,列表長度如下例所示。
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var]
當執行上面的代碼,產生以下結果:
4
列表索引項
用於選擇在指定索引的列表項如下。
lindex listname index
例如,列表索引項目如下所示。
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var 1]
當執行上面的代碼,產生以下結果:
blue
插入索引項目
在列表特定索引插入項目的語法如下。
linsert listname index value1 value2..valuen
例如,在列表特定的索引插入項目如下。
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
當執行上面的代碼,產生以下結果:
orange blue red black white green
更換項目索引
用於替換列表項以特定索引的語法如下。
lreplace listname firstindex lastindex value1 value2..valuen
例如用於替換列表項以特定的索引如下。
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
當執行上面的代碼,產生以下結果:
orange blue black white
設置指數項目
用於設置列表項在特定索引下面的語法給出。
lset listname index value
例如設置列表項的索引具體如下。
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black
puts $var
當執行上面的代碼,產生以下結果:
black blue red green
轉換列表變量
複製值到變量的語法如下。
lassign listname variable1 variable2.. variablen
例如,用於將列表到變量如下。
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2
當執行上面的代碼,產生以下結果:
orange
blue
排序列表
排序列表的語法如下。
lsort listname
進行列表的排序如下例子。
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var]
puts $var
當執行上面的代碼,產生以下結果:
blue green orange red