1.lset可以快速的修改元素。他获取一个变量名,列表中永久存在的一个元素对应的索引或者一些列索引从而指向某个字列表的元素已经赋给这个元素的新值,lset返回变量的新值
set person {{jane doe} 30 female}
lset person 1 32
=>{jane doe} 32 femal
lset person {0 1} john
=>{jane john} 32 female
lset person 0 0 janice
=>{janice john} 32 female
2.lappend
提供一种高效的方法,把新元素添加到存放在一个变量中的列表
set x {a b {c d} e}
lappend x XX {YY ZZ}
=>a b {c d} e XX {YY ZZ}
puts $x
=>a b {c d} e XX {YY ZZ}
lappend x $a $b $c
可以改写为
set x [concat $x [list $a $b $c]] list把每一个参数作为列表的一个独立元素
lappend和lset他们所接受的是存放列表的变量(不带$),而不是直接接受列表
3.lassign
可以方便的把列表中的值分发到一个或多个变量中,他的第一个参数是列表,后面的参数是变量名,如果变量名比列表中的元素个数多,多余的变量被设置为空字符串,如果列表元素多,则返回未分发的元素组成的列表
lassign {a b c} x y z
puts “$x $y $z"
=>a b c
lassign {d e} x y z
puts "<$x> <$y> <$z>"
=><d> <e> <>
lassign {f g h i} x y
=>h i