Мне трудно получить доступ к значениям в вложенном словаре, используя список ключей.Tcl: Как получить значение из вложенного словаря по списку ключей
dict set testDict library [dict create NY [dict create section [dict create adult [dict create book cinderella]]]]
library {NY {section {adult {book cinderella}}}}
# I can access the value by:
dict get $testDict library NY section adult book
cinderella
# cannot access the same by list of keys in a variable
set keyLst {library NY section adult book}
library NY section adult book
set keyStr "library NY section adult book"
library NY section adult book
dict get $testDict $keyLst
key "library NY section adult book" not known in dictionary
dict get $testDict $keyStr
key "library NY section adults book" not known in dictionary
# The only not elegant solution I came up is using eval + list
eval dict get \$testDict $keyStr
key "adults" not known in dictionary
eval dict get \$testDict $keyLst
cinderella
В то время как eval работает в этом случае - должен быть лучший способ сделать это напрямую.
Любая идея, как получить доступ к значениям вложенного словаря по списку ключей в переменной?
Если это всего лишь стиль кода, вы можете задать его на странице [Обзор кода] (http://codereview.stackexchange.com/). –