2017-06-06 83 views
0

是否可以使用Python将字符串映射到映射。例如,如果我想要一个地图,看起来像:Python - 将键映射到作为映射的值

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

这是可能?如果我在mymap为空时执行迭代(例如在循环的开始处),我将如何向地图添加值或检查地图以查看“内部地图”的值。谢谢!

回答

0
>>> from collections import defaultdict 

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

可以尝试这个片段中,希望这可以解决你的目的

+0

所以,如果我有{“ABC”:{“123”:56}}) ,我如何检查'56'是否与'ABC'相关? ('123'也很重要,但不是直接在这一步)。每个内部字典只会有一对(用元组代替字典会更有意义)? – biocompamateur

+0

最近才了解到'defaultdict',确实非常有用。 –

+0

@biocompamateur是如果你只有一对值,那么元组会更好(或者如果你想改变其中的一个值,那么就是一个列表)。 –

0

是的,它是可能的。如果你不能确定是mymap有元素,不想做try except可以使用dict.get(key, default)方法:

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