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
putscolorList2
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]
putsvar
当上述代码被执行时,产生的结果如下所示:
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]
putsvar
当执行上述代码时,会产生以下结果-
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
putscolour1
puts $colour2
当上面的代码被执行时,它会产生以下结果−
orange
blue
排序列表
排序列表的语法如下所示:
lsort listname
给出下面的一个对列表进行排序的示例−
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort var]
putsvar
在执行以上代码时,它会产生以下结果−
blue green orange red