如何在Tcl中创建嵌套字典

时间:2019-09-10 11:32:28

标签: tcl

我尝试将值追加或添加到已创建的嵌套字典中。 这是字典:

set ldifValues {
    00001 {
        first abc
        second 4ee
        third 000
        nested {111-11111 111-11112}
        person 5034
    }

我尝试用以下方法创建一个新的容器:

dict with ldifValues 00002 {
    lappend first abc
    lappend second 5ee
    lappend third 0101
    lappend nested 0100-5020 0100-5033 0101-50335
    lappend personnel 5033
}

我想添加一个由00002开始的新密钥以及所有其他值。特别是我无法将00002键创建为新键。

2 个答案:

答案 0 :(得分:0)

我将通过以下方式创建复杂的dict

set ldifValues [dict create]
dict set ldifValues 00001 {
    first abc
    second 4ee
    third 000
    nested {111-11111 111-11112}
    person 5034
}
dict set ldifValues 00002 {
    first abc
    second 5ee
    third 0101
    nested {0100-5020 0100-5033 0101-50335}
    personnel 5033
}

dict get $ldifValues 00002 personnel
# => 5033

dict set如果密钥不存在,基本上会添加一个新的dict条目。如果存在,它将覆盖现有的键/值对。因此,您可以完美地使用dict set添加到现有字典中。

答案 1 :(得分:0)

您可以通过嵌套键设置事物的嵌套键:

dict set ldifValues 00002 first abc
dict set ldifValues 00002 second 5ee
dict set ldifValues 00002 third 0101
dict set ldifValues 00002 nested {0100-5020 0100-5033 0101-50335}
dict set ldifValues 00002 personnel 5033

或者您可以通过使用字典作为要设置的值来进行批量设置:

dict set ldifValues 00002 {
    first abc
    second 5ee
    third 0101
    nested {0100-5020 0100-5033 0101-50335}
    personnel 5033
}

dict with更适合更新现有的嵌套字典结构。