TCL:立即为dict添加几个键值对

时间:2016-01-26 11:05:21

标签: tcl

我想将多个键值对添加到dict

我尝试了追加,lappend和set,但键值对被追加为一个大字符串。

以下是代码:

set myNewDict [dict lappend $myOldDict \
"field one" "VALUE1" \
"field two" "VALUE2" \
"field three" "VALUE3" \
"field four" "VALUE4"

]

我该怎么做?

2 个答案:

答案 0 :(得分:3)

它本身并没有提供。但是,dict命令实现为ensemble并且可以扩展。一些示例在dicttools wiki页面上,但在这种情况下,下面定义了一个合适的过程,然后将其添加到dict集合中,以便您可以将其作为单个命令调用。

proc ::tcl::dict::append2 {dictVarName args} {
    upvar 1 d $dictVarName
    foreach {k v} $args {
        dict append d $k $v
    }
}
namespace ensemble configure dict -map \
    [linsert [namespace ensemble configure dict -map] end \
    append2 ::tcl::dict::append2]

使用示例:

% set d [dict create]
% set d
% dict append2 d a 1 b 2 c 3
% set d
a 1 b 2 c 3

答案 1 :(得分:1)

我想你想要dict merge

% set d [dict create 1 foo 2 bar]
1 foo 2 bar
% set d [dict merge $d [dict create \
2 baz \
3 example \
4 stuff]]
1 foo 2 baz 3 example 4 stuff