学习 tcl 时的一些小例子笔记 (记录)

#!/usr/bin/tclsh 

#### concat 连接 
set zimu [list a b c d];
set mun  [list 1 2 3 4];
set and  [concat $zimu $mun];
puts $and ;

concat $mun $zimu;
puts $mun;

#### lrepeat  重复 
set a [list 7 8 9 10];
set b [lrepeat 4 $a];
set bb [lrepeat 4 7 8 9 10];
puts $b;
puts $bb;
#### lindex & llength & lrange   下标查元素  长度   范围截取  

set c [list 4 5 6 7];
puts [llength $c];
puts $c;
set d   [llength $c]-1;
puts $d;
set dd [lindex $c 0]
puts [lindex $c 0]
puts $dd;
set ddd [lindex $c end];

puts $ddd-1;

set u {a {a {d c}} e}
set uu [lindex $u 1 1 1];
puts $uu;

set ra [lrange $u 1 2];
puts $ra;

### lassign 重新分配
 
lassign $ra o p;

puts $o;
puts $p

set ooo [lassign $u oo]
puts $ooo
set ooo [lassign $u oo pp]
puts $ooo

set ooo [lassign $u oo pp qq]
puts $ooo 

###lappend  &&  linsert  增加  插入  
set num [list 1 2 3 4 5]
lappend num 1 2 {3 4 5}
puts [lappend num 1 2 {3 4 5}]
puts $num

set num1 [linsert $num 0 insert]
puts $num1 

set num2 [linsert $num1 end 6]
puts $num2 

set num3 [linsert $num2 999 7]
puts $num3 

##### lreplace  替代

set num4 [lreplace $num3  0 0]
puts [lreplace $num 0 0]
puts $num4 

set num5 [lreplace $num4 0  0]
puts $num5 


set num6 [lreplace $num5 end  end]
puts $num6 

set num7 [lreplace $num6 end  end 666]
puts $num7 
set num7 [lreplace $num7 end  end 777]
puts $num7 



#### lset  直接对原列表发生改变  
lset num7 end 888
puts $num7 

set lll [lset num7 {6 2} 777]
puts $lll  

#######lserach  查询 
set se [list b1 b2 b3 b4 b5 n1 n2 n3 n4]

set one [lsearch $se b1]
puts $one  
####  输出的是索引下标
set tw [lsearch  $se b6]
puts $tw  
set thr [lsearch -all -inline $se b*]
puts $thr  

set four [lsearch $se {b[2 3]}]
puts $four 
#set five [lsearch -all $se b[123]]
#puts $five  
set sev [lsearch -all -inline -not $se {b[3 5]}]
puts $sev  
set six [lsearch -all $se b*]
puts $six  


#####lsort   排序

set word [list a o p d k]
set drow [lsort $word]
puts $word 

puts $drow
set num [list 8 2 5 3 7 6]
set mun [lsort -integer $num]
puts $num

puts $mun

set M [list {w 10} {a 8} {p 9}]
set N [lsort -index 0 $M]
set N2 [lsort -integer -index 1 $M]
puts $N
puts $N2

######## split &&  join  && in   
#隔开 
#合并
#是否存在
 
set yy asdfghj
set y2 [split $yy sfh]
puts $y2 

set y3 [llength [split $yy aj]]
puts $y3 

set qqq [list 1 2 3 4 5]
set q1 [join $qqq {}]

set q2 [join $qqq /]
set q3 [join $qqq \n]

puts $q1 
puts $q2 
puts $q3 

set aaa a 
set bbb b 
set y4 [expr {$aaa in $y2}]
puts $y4 
set y5 [expr {$bbb in  $y2}]
puts $y5 

#######  foreach  

set  test [list 1 e 2 r 3 t 4 y 5 w]
set  test2 {11 22 33 44 55}
puts $test
foreach {m n} $test {
  set mm [expr {$m+100}]
  puts "$mm $n"
}
puts $mm



foreach {tes1 tes} $test tes2 $test2 {
  set   tes3 [expr {$tes1+100}]
  puts "$tes3 $tes $tes2"
}


输出结果 :

a b c d 1 2 3 4
1 2 3 4
{7 8 9 10} {7 8 9 10} {7 8 9 10} {7 8 9 10}
7 8 9 10 7 8 9 10 7 8 9 10 7 8 9 10
4
4 5 6 7
4-1
4
4
7-1
c
{a {d c}} e
a {d c}
e
{a {d c}} e
e

1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5}
1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5}
insert 1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5}
insert 1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 6
insert 1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 6 7
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5}
1 2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 6 7
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 6 7
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 6
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 666
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 777
2 3 4 5 1 2 {3 4 5} 1 2 {3 4 5} 888
2 3 4 5 1 2 {3 4 777} 1 2 {3 4 5} 888
0
-1
b1 b2 b3 b4 b5
1
b1 b2 b4 n1 n2 n3 n4
0 1 2 3 4
a o p d k
a d k o p
8 2 5 3 7 6
2 3 5 6 7 8
{a 8} {p 9} {w 10}
{a 8} {p 9} {w 10}
a d g j
3
12345
1/2/3/4/5
1
2
3
4
5
1
0
1 e 2 r 3 t 4 y 5 w
101 e
102 r
103 t
104 y
105 w
105
101 e 11
102 r 22
103 t 33
104 y 44
105 w 55

concat

concat  列表A  列表B

lrepeat

lrepeat  重复次数  列表A

lindex

lindex  列表A  元素索引

 lrange

lrange  列表A  元素索引a  元素索引b

llength

length  列表A

lassign

lassign  列表A  元素索引a  元素索引b

lappend

lappend  列表A  增加的元素

linsert

linsert  列表A  元素索引a

lreplace

lreplace  列表A  元素索引a  替换元素

lset

lset  列表A  元素索引  替换元素

lsearch

lsearch(-all –inline –not) 列表A  元素

lsort

lsort  列表A

split

split  列表A  分隔符

join

join  列表A  分隔符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值