Python—将键映射到作为映射的值

Python—将键映射到作为映射的值,python,dictionary,Python,Dictionary,可以在Python中将字符串映射到映射吗。例如,如果我想要一张如下所示的地图: mymap={'ABC':{'123':56},'DEF':{'456':92} 这可能吗?例如,当mymap在循环开始时为空时,如果我正在进行迭代,我将如何向映射添加值,或者检查映射以查看“内部映射”的值。谢谢 >>> from collections import defaultdict >>> mymap = defaultdict(dict) >>> m

可以在Python中将字符串映射到映射吗。例如,如果我想要一张如下所示的地图:

mymap={'ABC':{'123':56},'DEF':{'456':92}

这可能吗?例如,当mymap在循环开始时为空时,如果我正在进行迭代,我将如何向映射添加值,或者检查映射以查看“内部映射”的值。谢谢

>>> from collections import defaultdict

>>> mymap = defaultdict(dict)
>>> mymap['ABC'] = {'123' : 56}
>>> mymap
defaultdict(<type 'dict'>, {'ABC': {'123': 56}})

你能试一下这个片段吗?希望这能解决你的问题。

是的,这是可能的。如果您不确定mymap是否包含元素,并且不想尝试,除非您可以使用dict.getkey,默认方法:


所以,如果我有{'ABC':{'123':56},我如何检查'56'是否与'ABC'关联?“123”也很重要,但不是直接在这一步中。每个内部dict将只有一对dict使用元组而不是dict是否更有意义?只是最近才了解defaultdict,确实非常有用。@BioCompaticer是的,如果您想要更改其中一个值(如果您只有一对值),则使用元组或列表会更好。
value = mymap.get('ABC', {}).get('123', None)
if values is not None:
    # Found key 123 inside mymap['ABC']
else:
    # mymap['123'] or mymap['123']['ABC'] doesn't exist