将列表分配给Tcl中的键控词典
我在Tcl中有一个传入列表,它实际上是键控列表的值 像这样的将列表分配给Tcl中的键控词典,tcl,Tcl,我在Tcl中有一个传入列表,它实际上是键控列表的值 像这样的 set list1 [list value1 value2 value3 value4 value5 value6 value7 value8 value9] set keys [list key1 key2 key3] 我想通过Tcl中键列表中的键将list1分配到一个键数组中 这是最好的方法吗?还是有更优雅的方法 foreach {a b c} $list1 { dict lappend mydict key1 $
set list1 [list value1 value2 value3 value4 value5 value6 value7 value8 value9]
set keys [list key1 key2 key3]
我想通过Tcl中键列表中的键将list1分配到一个键数组中
这是最好的方法吗?还是有更优雅的方法
foreach {a b c} $list1 {
dict lappend mydict key1 $a
dict lappend mydict key2 $b
dict lappend mydict key3 $c
}
好吧,我更想做:
foreach {a b c} $list1 {
foreach k $keys v [list $a $b $c] {
dict lappend mydict $k $v
}
}
或者在使用更简单的doubleforeach
之前,将键列表扩展到传入列表的长度:
foreach k [lrepeat [expr {[llength $list1]/[llength $keys]}] {*}$keys] v $list1 {
dict lappend mydict $k $v
}
我不完全确定这些是否比您现在正在做的更加优雅(或健壮)。谢谢。您确定第二个代码段中没有输入错误吗?lrepeat命令中的$keys不是$list1吗?@Jonjilla Err,是的。固定的。(上班前没有时间运行代码,所以一个bug悄悄地进来了…)