如何使用tcl写一个移除本身list保留其他list的行为

proc proc_remove_from_one_list { lista listb } {
    set index [ lsearch -exact  $lista $listb ] 
    if { $index == -1 } {
    puts "Error: can't find $listb in $lista"
    }
    set lista [ lreplace $lista $index $index ] 
    return $lista
}

如上述代码所示,用到了lsearch和lreplace两个tcl 语法,在这里介绍一下这两种tcl 语法的应用。

lsearch ?options? list pattern  这里的option选用了-exact ,表示Pattern是一个文字字符串,用于与每个列表元素进行完全相等的比较。 用在这里,若pattern在list里可以匹配到,则返回匹配对应位置的数值(从0位开始),若匹配不到,则返回-1。

lreplace - 在一个列表中使用新的元素替代其它元素。

lreplace list first last ?element element ...

lreplace返回一个新的列表,新的列表通过替代一个或者多个list列表中的元素。上述脚本使用相同的index值,则会返回一个去掉index位置的元素的新列表,从而达到我们的目的。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值