我想将多个键值对添加到dict
。
我尝试了追加,lappend和set
,但键值对被追加为一个大字符串。
以下是代码:
set myNewDict [dict lappend $myOldDict \
"field one" "VALUE1" \
"field two" "VALUE2" \
"field three" "VALUE3" \
"field four" "VALUE4"
]
我该怎么做?
答案 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