【发布时间】:2015-12-02 09:11:49
【问题描述】:
我仍在试图弄清楚 Python 中嵌套字典的真正工作原理。
我知道,当您使用 [] 时,它是一个列表, () 它是一个元组,而 {} 是一个字典。 但是当你想制作一个像这种结构的嵌套字典时(这就是我想要的):
{KeyA : {ValueA : [KeyB : ValueB], [Keyc : ValueC], [KeyD : ValueD]}, {ValueA for each ValueD]}}
现在我有一个像这样的字典:
{KeyA : {KeyB : [ValueB], KeyC : [ValueC], KeyD : [ValueD]}}
这是我的代码:
json_file = importation()
dict_guy = {}
for key, value in json_file['clients'].items():
n_customerID = normalization(value['shortname'])
if n_customerID not in dict_guy:
dict_guy[n_customerID] = {
'clientsName':[],
'company':[],
'contacts':[], }
dict_guy[n_customerID]['clientsName'].append(n_customerID)
dict_guy[n_customerID]['company'].append(normalization(value['name']))
dict_guy[n_customerID]['contacts'].extend([norma_email(item) for item in v\
alue['contacts']])
有人可以请给我更多信息或真正向我解释嵌套字典的工作原理吗?
【问题讨论】:
-
请解释
{ValueA for each ValueD]}的含义,因为它不是有效的 Python 代码。 -
@Maciek 这意味着我需要参考 dict_guy['n_customerID']['contacts'] 中存在的联系人来报告客户名称。对于现场联系人,我需要报告关联的客户名称。是不是更明白了还是不清楚?
-
对不起,还是没听懂 :( 或许写一个你想如何使用你的嵌套字典的例子?像
print(dict_guy[1234]['contacts']['guy@host.com']['name'])? -
您希望
contacts成为字典,我说得对吗? -
@Maciek 是的,我希望联系人成为字典。对不起,是我,我的解释根本不清楚,我会尝试写一个例子。这里是: print(dict_guy['toto']['contacts']['toto@titi.com']['toto']) 我需要像联系人字段是关键和报告 ['toto' ] 是该键的值。现在更清楚了吗?
标签: python-3.x dictionary nested