如何在tcl中创建多个列表的tcl列表?

时间:2017-01-18 07:10:10

标签: tcl itcl

我有一个存储为$ m_objs的变量中的对象列表,使用每个对象,我可以获得4个不同的值,如demoRoot demoSuite demoCase和ic,所以每个都必须是这样的列表:

set data {
    {demoRoot1 demoSuite1 demoCase1 ic1}
    {demoRoot2 demoSuite2 demoCase2 ic2}
    {demoRoot3 demoSuite3 demoCase3 ic3}
    {demoRoot4 demoSuite4 demoCase4 ic4}
    {demoRoot5 demoSuite5 demoCase5 ic5}
    {demoRoot5 demoSuite5 demoCase5 ic5}
}

所以我尝试使用这样的foreach循环:

set tests [list]

foreach ic $m_ics \
{
    set icRoot [$ic getRoot]
    set icSuite [$ic getSuite]
    set icCase [$ic getCase]
    set icName [$ic getName]
    set icList "$icRoot $icSuite $icCase $icName"
    lappend tests $icList
}

输出i get仅用于这样的一次迭代

puts $icList
PTSE2 actions misc rmon_counters

但输出应该像我提到的set data {...........}

那样获得

请帮我拿到这个

1 个答案:

答案 0 :(得分:2)

更改此行:

set icList "$icRoot $icSuite $icCase $icName"

为:

set icList [list $icRoot $icSuite $icCase $icName]

这将创建icList作为列表而不是字符串,并将作为列表附加到tests列表。

参考文献:list