我目前使用以下方式遍历tcl列表
foreach i $listname {
puts $i
}
我怎么才能只显示列表的最后三项? 在c ++中我会做这样的事情
for( int i = listname.size()-1; i>=0;i--)
{
}
答案 0 :(得分:5)
你可以在Tcl中做类似的事情。您可以使用llength
确定列表中的项目数,然后使用计数器变量设置for
循环,并使用lindex
来获取您感兴趣的项目。
我最喜欢写下:
foreach item [lrange $listname end-2 end] {
puts $item
}
这使用lrange
创建一个新列表,该列表是另一个列表的一部分,并使用这样一个事实,即lrange
赋予的索引可以是符号,并且在它们中有简单的算术来选择你的列表元素想。
答案 1 :(得分:1)
以下是如何在tcl中进行c循环。
test.tcl
#!/usr/bin/tclsh
set mylist [list Red Orange Yellow Green Blue Indigo Violet]
set length [llength $mylist]
set stopat [expr $length - 3]
for {set i [expr $length - 1]} {$i >= $stopat} {incr i -1} {
puts [lindex $mylist $i]
}
输出:
./test.tcl
Violet
Indigo
Blue