【问题标题】:Lookup Keys in a Python Dictionary and Default Values if Key doesn't exist如果键不存在,则在 Python 字典中查找键和默认值
【发布时间】:2019-07-03 16:15:07
【问题描述】:

我正在尝试在 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)  

我想知道是否有更简单、更直观和更智能的方法来做到这一点。

【问题讨论】:

标签: python python-3.x dictionary


【解决方案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)

有什么方法可以重构输入数据?需要深入两层并检查列表并不是最理想的。

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 2012-03-22
    • 2017-06-24
    • 2023-03-16
    • 2021-06-28
    • 2019-04-23
    • 2019-12-20
    • 2022-07-12
    • 2020-02-25
    相关资源
    最近更新 更多