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