如何在 Tcl 中创建嵌套字典
How to create nested dictionary in 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
密钥。
我将按以下方式创建一个复杂的 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
如果键不存在,基本上会添加一个新的字典条目。如果存在,它将覆盖现有的 key/value 对。所以你可以完美地使用 dict set
添加到现有的 dict.
您可以通过嵌套键设置嵌套键:
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
更适合更新现有的嵌套字典结构。
我尝试向已创建的嵌套词典追加或添加值。 这是字典:
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
密钥。
我将按以下方式创建一个复杂的 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
如果键不存在,基本上会添加一个新的字典条目。如果存在,它将覆盖现有的 key/value 对。所以你可以完美地使用 dict set
添加到现有的 dict.
您可以通过嵌套键设置嵌套键:
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
更适合更新现有的嵌套字典结构。