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
广告