Tcl列表操作

本文介绍了Tcl语言中处理列表的一些基本命令,如list用于创建列表,lappend追加元素,lindex获取指定位置元素,lsort进行列表排序,以及foreach循环遍历列表等。这些命令帮助程序员有效地管理和操作列表数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、list命令:用来创建列表,列表可以镶嵌。

set l1 [list Sun Mon Tues] 
puts $l1
set l2 [list $l1 Wed]
puts  $l2
set str1 "Sun Mon Tues"
puts  $str1
set l3 [list $str1 wed]
puts  $l3

2、concat命令:以空格为分隔符将多个列表拼装形成新的列表

set x {1 2}
set y [concat $x 3]

1 2 3 

3、lappend命令:用来将新元素追加到列表末尾,同时也可以用来创建一个列表。

lappend new 1 2

1 2

lappend new {3 4} "5" {6} 7

1 2 {3 4} 5 6 7    单个词的元素和双引号和花括号被剥离了

4、llength命令:可以获得一个列表内元素的个数。

set l1 "1 2 3 4 5"

set num [llength $l1]

5

5、lindex命令:返回列表中指定位置的特定元素。

set x {1 4 5}

lindex $x 1  #索引从第0个元素开始

4

lindex $x end-1
4

6、lrange命令:返回一个指定区段的列表元素。

lrange {1 2 3 {4 5} 6} 2 end
3 {4 5} 6

7、linsert和lreplace命令:linsert用来将元素插入到一个列表的由索引指定的位置。

lreplace命令将一个指定区段的列表元素替换为新元素。

set x {1 2}
set new [linsert $x 0 he she]
puts $new

set new1 [lreplace $x 1 1 b]
puts $new1

注意:替换并不会改变原来列表的内容,而是返回一个新的列表。

9、lsearch 命令:在给定列表中搜索与匹配字符串匹配的元素,成功就返回正确的索引(指的是位置),否则返回-1.

#proc ldel {list value} {
 #   set ix [lsearch -exact $list $value]
 #   for {}{$ix>=0}{}{
 #       set list [lreplace $list $ix $ix]
 #       set ix [lsearch -exact $list $value]

#    }
#    return list
    
#}
#set l1 [list 123 234 123 345 123 456]
#set val 123


#set l2 [ldel $l1 $val]
#puts $l2

10、lsort 命令:实现对列表的排序。排序不影响原表,返回新表。

lsort -ascii $list

排序的方式有多种,可以通过-ascii、-dictionary、-integer、-real,然后使用-increasing、decreasing指定排序方式。默认-ascii、-increasing。

11、join 与 split命令

join命令接受一个列表,并用指定的分隔符将列表元素整合成一个字符串。

split命令作用于join相反,接受一个字符串,并根据给定的字符将其分割转换成一个列表。

 

 13、foreach命令控制结构遍历整个列表,逐次取出列表的每个元素的值放到指定变量中。

foreach elem $l1 {
    puts "---$elem"
}

逐次取出l1元素,并在结构体中打印出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值