仅显示tcl列表的最后三项

时间:2014-12-15 21:23:19

标签: tcl

我目前使用以下方式遍历tcl列表

foreach  i  $listname  {
    puts $i
}

我怎么才能只显示列表的最后三项? 在c ++中我会做这样的事情

for( int i = listname.size()-1; i>=0;i--)
{
}

2 个答案:

答案 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