首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCL从列表中删除元素

TCL从列表中删除元素
EN

Stack Overflow用户
提问于 2011-04-18 19:06:39
回答 6查看 87.1K关注 0票数 22

如何从TCL列表中删除一个元素,例如:

索引

  • =4的

  • ,其值= "aa"

我已经用谷歌搜索过了,还没有找到任何内置的函数。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-04-18 19:15:20

代码语言:javascript
运行
复制
set mylist {a b c}
puts $mylist
a b c

按索引删除

代码语言:javascript
运行
复制
set mylist [lreplace $mylist 2 2]
puts $mylist 
a b

按值删除

代码语言:javascript
运行
复制
set idx [lsearch $mylist "b"]
set mylist [lreplace $mylist $idx $idx]
puts $mylist
a
票数 48
EN

Stack Overflow用户

发布于 2011-04-19 06:06:13

删除元素的另一种方法是过滤掉它。这种TCL8.5技术与其他地方提到的lsearch&lreplace方法的不同之处在于,它从列表中删除了所有给定元素。

代码语言:javascript
运行
复制
set stripped [lsearch -inline -all -not -exact $inputList $elemToRemove]

它不做的是在嵌套列表中搜索。这是因为Tcl没有花太多的精力去理解你的数据结构。(您可以通过-index选项,通过比较子列表的特定元素来告诉它进行搜索。)

票数 17
EN

Stack Overflow用户

发布于 2011-04-18 19:10:04

假设你想替换元素"b":

代码语言:javascript
运行
复制
% set L {a b c d}
a b c d

将第一个元素1和最后一个元素1替换为nothing:

代码语言:javascript
运行
复制
% lreplace $L 1 1
a c d
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5701947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档