Python字典中的查找键和默认值(如果键不存在)

时间:2019-07-03 16:15:07

标签: python python-3.x dictionary

我正在尝试在python中进行键查找。我有词典字典如果键存在,我正在对值中的值进行查找并返回键。我想要一个默认值集,以防键不存在。

我可以写一个if else语句来检查密钥是否存在。如果键不存在,则可以使用默认值集。

这是我的字典的样子:

lookup= {
        "key1" : {                
                "TRUE"    : ["1"],        
                "FALSE"   : ["0"]                
                },
        "key2": {               
                "TRUE"    : ["d"]               
                },
        "DEFAULT": {      
                "TRUE"    : ["1","t","tr","true"],        
                "FALSE"   : ["0","f","fl","fs","false"]         
            }
        }

这是我尝试过的:

if __name__ == "__main__":

    item="key1"
    v='0'

    if item in lookup:
        for key, value in lookup[item].items():
            if v.lower() in [x.lower() for x in value]:                     
                v = key
                print(v)

    else:
        for key, value in lookup["DEFAULT"].items():
            if v.lower() in [x.lower() for x in value]:                                           
                v = key
                print(v)  

我想知道是否有更简单,直观和更智能的方法。

1 个答案:

答案 0 :(得分:1)

作为部分简化,您可以执行以下操作:

if __name__ == "__main__":

    item="key1"
    v='0'

    lookup_result = lookup.get(item, lookup["DEFAULT"])
    for key, value in lookup_result.items():
        if v.lower() in [x.lower() for x in value]:
            v = key
            print(v)

有什么方法可以重组输入数据?需要深入两个层次并检查列表并不是最佳选择。