【问题标题】:How do I print more than one value per key in Tcl?如何在 Tcl 中为每个键打印多个值?
【发布时间】:2015-06-22 23:45:05
【问题描述】:
array set array_in_twos {
    set1 table
    set2 chair
    set1 chair
}

foreach combo [array names array_in_twos] {
    puts "$combo is  $array_in_twos($combo),"
}

输出:

set1 is chair,
set2 is chair,

似乎第二个“set 1”取代了第一个“set 1”。 如何全部打印?

set1 is table,
set2 is chair,
set1 is chair,

如果使用数组不是最佳解决方案,我愿意接受其他方法。谢谢。

【问题讨论】:

    标签: arrays tcl


    【解决方案1】:

    你不能用数组字典来做到这一点;两者都是从键到值的映射。相反,您需要直接将foreach 与键值对系统一起使用:

    set pairs {
        set1 table
        set2 chair
        set1 chair
    }
    
    foreach {key value} $pairs {
        puts "$key is $value"
    }
    

    这确实缩短了代码……

    【讨论】:

    • 非常感谢,多纳尔!
    • @grege:如果答案对你有用,你应该用勾号接受它,从而向其他人表明答案解决了你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多