📅  最后修改于: 2020-10-16 06:28:14             🧑  作者: Mango
列表是Tcl中可用的基本数据类型之一。它用于表示项目的有序集合。它可以在同一列表中包括不同类型的项目。此外,一个列表可以包含另一个列表。
需要注意的重要一点是,这些列表完全表示为字符串,并在需要时进行处理以形成单个项。因此,避免使用大型列表,在这种情况下;使用数组。
list的一般语法如下:
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