有没有办法在字典中创建子字典?一个例子是一个州的城市字典,该城市的街道,以及该街道上的房屋号码?我正在构建一个电路配置构建程序,我已经在IDF中编写了我们的IDF位置和装备。然后我使用该字典为Tkinter中的MenuBox生成列表项。我的目标是能够将IP地址,上行链路端口和机架位置等内容与该设备相关联,但将该信息隐藏给用户。我现在设置它的方式是我只是将所有信息附加到表示齿轮的字符串的末尾,然后使用string.split()将信息拉入相应的变量。这个问题是用户可以看到一切,看起来很乱。以下是我想如何设置的示例
dict = {'Toledo': ['Main': ['1234', '4321'], 'First st': ['312', '412', '1234'], 'Second st': ['1243, '3213', 4123']],
'Cleveland': ['Third st': ['1234', '593], 'Front st': ['321', '467', '12340']],
'Cincinnati': ['Bishop': ['5901', '1234'], 'Wells': ['1234', '1234', '8842]]}
strAddress = tk.StringVar()
strStreet = tk.StringVar()
optCity = tk.OptionMenu(master, strAddress, *dict.keys())
entCust = tk.Entry(master, textvariable=strStreet)
print(strAddress.get(strStreet.get()[1] + ' ' + strStreet.get() + ', ' + strAddress.get())
这将打印出" 1234 Main,Toledo"如果用户从选项菜单中选择了Toledo并在输入框中键入Main。如果您需要更多信息或我的代码是错误的,请告诉我,我是python的新手
答案 0 :(得分:1)
是的,这是可能的。
data = {
"Toledo": {
"Main": [12, 23]
},
"Cleveland": {
"Third st": ['1234', '593']
}
}
就是一个例子。您也可以像这样创建它:
data = dict()
data["Toledo"] = {
"Main": [12, 23]
}
data["Cleveland"] = {
"Third st": ['1234', '593']
}
NB。不要将dict
用作变量名。 dict
是内置字典类型的保留关键字。
答案 1 :(得分:0)
你错了的是你试图建立一个列表而不是一个dict(用[]而不是{}作为二级词典。 例如,您可以这样做:
states = {'usa': {'GA': 'Atlanta'}, 'Canada': {'Ontario': 'Toronto'}}