我正在尝试创建一个包含数据结构(字典)和描述这些数据结构的文本字符串的程序模块。我想将这些(字典和描述)导入到一个提供GUI界面的模块中。显示的行之一是第一个字典中包含的内容,其中一个字段包含另一个字典中包含的所有可能值。我试图避免“硬编码”这种关系,并希望将链接传递给第二个字典(包含所有可能的值)到描述第一个字典的字符串。一个抽象的例子是:
dict1 = {
"1":["dog","cat","fish"],
"2":["alpha","beta","gamma","epsilon"]
}
string="parameter1,parameter2,dict1"
# Silly example starts here
#
string=string.split(",")
print string[2]["2"]
(我想得到:["alpha","beta","gamma","epsilon"]
但当然这不起作用
有没有人有这个问题的聪明解决方案?
答案 0 :(得分:3)
通常,这种动态代码执行是个坏主意。它导致很难阅读和维护代码。但是,如果必须,您可以使用globals
:
globals()[string[2]]["2"]
更好的解决方案是首先将dict1
放入字典中:
dict1 = ...
namespace = {'dict1': dict1}
string = ...
namespace[string[2]]["2"]