代码之家  ›  专栏  ›  技术社区  ›  user200783

在Python dict链中查找键?

  •  1
  • user200783  · 技术社区  · 7 年前

    Python中有内置的方法来查找键吗 k 在一个 dict d 如果钥匙不存在,请在另一个数据库中查找 e ?

    字典 s d => e => f =>。。。?

    3 回复  |  直到 7 年前
        1
  •  3
  •   mhawke    7 年前

    你可以用一个 collections.ChainMap :

    from collections import ChainMap
    
    d = ChainMap({'a': 1, 'b': 2}, {'b': 22}, {'c': 3})
    print(d['c'])
    print(d['b'])
    

    这将输出:

    3
    2
    

    请注意,键的查找 'b'

    ChainMap 在Python 3.3中引入

        2
  •  2
  •   Chen A.    7 年前

    ChainMap 不可用。

    这不太优雅,但有效:

    a = {1: 1, 2: 2}
    b = {3: 3, 4: 4}
    
    list_dicts = [a, b]
    
    def lookup(key):
        for i in list_dicts:
            if key in i:
                return i[key]
        raise KeyError
    
    lookup(1) # --> 1
    lookup(4) # --> 4
    

    您将所有的dict添加到一个列表中,并使用一种方法查看它们。

        3
  •  1
  •   Raju Pitta    7 年前

    可能如下所示:

    if k in d:
        pass
    elif k in e:
        pass
    elif k in f:
        ...