鍍金池/ 教程/ 物聯(lián)網(wǎng)/ TCL列表
TCL內(nèi)置函數(shù)
TCL變量
TCL嵌套循環(huán)
TCL決策
TCL循環(huán)
Tcl if...else語(yǔ)句
Tcl教程
TCL字符串
TCL邏輯運(yùn)算符
TCL Switch語(yǔ)句
TCL列表
TCL運(yùn)算符優(yōu)先級(jí)
TCL數(shù)據(jù)類(lèi)型
TCL環(huán)境設(shè)置
TCL正則表達(dá)式
TCL命名空間
TCL運(yùn)算符
TCL特殊變量
TCL數(shù)組
TCL算術(shù)運(yùn)算符
Tcl For循環(huán)
TCL文件I/O
TCL關(guān)系運(yùn)算符
TCL if語(yǔ)句
TCL命令
TCL基本語(yǔ)法
TCL三元運(yùn)算符
TCL continue語(yǔ)句
TCL嵌套if語(yǔ)句
TCL字典
TCL break語(yǔ)句
TCL包
TCL 嵌套switch語(yǔ)句
TCL while循環(huán)
TCL位運(yùn)算符
TCL過(guò)程
TCL錯(cuò)誤處理

TCL列表

列表是Tcl的基本可用數(shù)據(jù)類(lèi)型之一。它是用于表示項(xiàng)目的有序集合。它可以包括不同類(lèi)型的在同一列表的項(xiàng)目。此外,一個(gè)列表可以包含另一個(gè)列表。

需要注意的一個(gè)重要的事情是,列表表示為完全串并處理在需要時(shí),形成的各個(gè)項(xiàng)目。所以要避免大的列表,在這種情況下,可使用數(shù)組代替。

創(chuàng)建一個(gè)列表

列表的一般語(yǔ)法如下。

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

當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。

red green blue
red green blue
red green blue

追加項(xiàng)目到列表

追加項(xiàng)目到列表的語(yǔ)法如下。

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

當(dāng)上述代碼被執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果。

orange blue red green

列表長(zhǎng)度

列表長(zhǎng)度的語(yǔ)法如下。

llength listName

例如,列表長(zhǎng)度如下例所示。

#!/usr/bin/tclsh

set var {orange blue red green}
puts [llength $var] 

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

4

列表索引項(xiàng)

用于選擇在指定索引的列表項(xiàng)如下。

lindex listname index

例如,列表索引項(xiàng)目如下所示。

#!/usr/bin/tclsh

set var {orange blue red green}
puts [lindex $var  1]

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

blue

插入索引項(xiàng)目

在列表特定索引插入項(xiàng)目的語(yǔ)法如下。

linsert listname index value1 value2..valuen

例如,在列表特定的索引插入項(xiàng)目如下。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [linsert  $var 3 black white]
puts $var

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

orange blue red black white green

更換項(xiàng)目索引

用于替換列表項(xiàng)以特定索引的語(yǔ)法如下。

lreplace listname firstindex lastindex value1 value2..valuen

例如用于替換列表項(xiàng)以特定的索引如下。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

orange blue black white

設(shè)置指數(shù)項(xiàng)目

用于設(shè)置列表項(xiàng)在特定索引下面的語(yǔ)法給出。

lset listname index value 

例如設(shè)置列表項(xiàng)的索引具體如下。

#!/usr/bin/tclsh

set var {orange blue red green}
lset var 0 black 
puts $var

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

black blue red green

轉(zhuǎn)換列表變量

復(fù)制值到變量的語(yǔ)法如下。

lassign listname variable1 variable2.. variablen

例如,用于將列表到變量如下。

#!/usr/bin/tclsh

set var {orange blue red green}
lassign $var colour1 colour2
puts $colour1
puts $colour2

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

orange
blue

排序列表

排序列表的語(yǔ)法如下。

lsort listname

進(jìn)行列表的排序如下例子。

#!/usr/bin/tclsh

set var {orange blue red green}
set var [lsort $var]
puts $var

當(dāng)執(zhí)行上面的代碼,產(chǎn)生以下結(jié)果:

blue green orange red