lindex至少要获取两个参数,即一个列表和一个索引值
lindex {John Anne Mary Jim} 1
=> Anne
llength {John Anne Mary Jim}
=> 4
lrange [get_ports left_in*] 0 249
list {a b c} {d e} f {g h i}
=> {a b c} {d e} f {g h i}
set a [list {a b c} {d e} f {g h i}]
llength $a
=> 4
concat list1 list2 … 将list1 list2 …等等list中的元素展开后连称新的list (展开一层{})
这个命令把每个参量用空格连接在一起,参量开头和结尾的空白符被去掉,如果参量是列表,效果就是把所有的参量连接成一个单独的列表,可以有任意个参量,如果不提供参量,结果返回一个空字符串
concat a b {c d e} {f {g h}}
=> a b c d e f {g h}
加双引号可以不取消一层列表的
concat " a b {c d e} f"
=> a b {c d e} f
lrepeat 3 {a b}
=> {a b} {a b} {a b}
返回索引
lsearch {a b c d e} c
> 2
lsearch -all {a b c d e c} c
> 2 5
lsearch -not -all {a b c d e c} c
> 0 1 3 4
过滤列表
lsearch -inline {a20 b35 c47} b*
> b35
lsearch -inline -not {a20 b35 c47} b*
> a20
lsearch -inline -not -all {a20 b35 c47} b*
> a20 c47
切除操作:
lsearch -all -inline -not -exact {a b c a d e a f g a} a
> b c d e f g
半途开始:
lsearch -start 3 {a b c a b c} c
> 5
split的第一个参数是待分割的字符串,第二个参数是一个或多个分割字符
语法:
split string ? splitChars
set y /u/home/tcl/list.tcl
split $y /
=> {} u home tcl list.tcl
join 的动作和split相反,可以将list中所有元素以指定的字符连接成新的字串
语法:
join list ? joinString ?
set x {5 12 7}
expr [join $x +]
=> expr 5+12+7