如何获取tcl中两个索引号之间的元素列表
How to get the element lists between two index numbers in tcl
我有一个列表,例如:
设置一个{零均值0一二均值1三四五均值2六七八九十均值3 12 13 14 15}
现在我想自动化我的代码,以便它创建不同的列表,例如:
list1 {mean0 one two}
list2 {mean1 three four five}
list3 {mean2 six seven eight nine ten}
list4 {mean3 12 13 14 15}
tcl有什么办法吗?任何指导将不胜感激!!
您可以使用 lsearch
查找以“mean”开头的所有元素的索引。添加最后一部分的列表长度。从列表中选择第一个索引作为起点,然后遍历其余索引。 lrange
命令可以为您提供部分列表。一次迭代的结束索引将是下一次迭代的起始索引。
组合起来,可以编码为:
foreach p2 [lassign [linsert [lsearch -all $a mean*] end [llength $a]] p1] {
puts [lrange $a $p1 [expr {$p2 - 1}]]
set p1 $p2
}
我有一个列表,例如: 设置一个{零均值0一二均值1三四五均值2六七八九十均值3 12 13 14 15}
现在我想自动化我的代码,以便它创建不同的列表,例如:
list1 {mean0 one two}
list2 {mean1 three four five}
list3 {mean2 six seven eight nine ten}
list4 {mean3 12 13 14 15}
tcl有什么办法吗?任何指导将不胜感激!!
您可以使用 lsearch
查找以“mean”开头的所有元素的索引。添加最后一部分的列表长度。从列表中选择第一个索引作为起点,然后遍历其余索引。 lrange
命令可以为您提供部分列表。一次迭代的结束索引将是下一次迭代的起始索引。
组合起来,可以编码为:
foreach p2 [lassign [linsert [lsearch -all $a mean*] end [llength $a]] p1] {
puts [lrange $a $p1 [expr {$p2 - 1}]]
set p1 $p2
}