Python字典故障安全

这个问题在这里已经有了答案:

  • 检查给定的密钥是否已经存在于字典中18个答案

  • 你可以使用try / except块:

    try:
        # Notice that I got rid of str(Lookup)
        # raw_input always returns a string
        print Guide[Lookup]
    # KeyErrors are generated when you try to access a key in a dict that doesn't exist
    except KeyError:
        print 'Key not found.'
    

    此外,为了让您的代码正常工作,您需要制作下面这行代码:

    if again != ('YES' or 'Y'):
    

    喜欢这个:

    if again not in ('YES', 'Y'):
    

    这是因为,正如它目前的情况,你的代码正在被Python评估如下:

    if (again != 'YES') or 'Y':
    

    此外,由于非空字符串在Python中计算为True ,因此使用这样的代码将使if语句始终返回True因为'Y'是非空字符串。

    最后,你可以完全摆脱这部分:

    else:
        Running = True
    

    因为它没有做任何事情,只是将一个变量分配给它已经相等


    两个选项。

    使用in运算符:

    d = {}
    
    d['foo'] = 'bar'
    
    'foo' in d
    Out[66]: True
    
    'baz' in d
    Out[67]: False
    

    或者使用字典的get方法并提供可选的default-to参数。

    d.get('foo','OMG AN ERROR')
    Out[68]: 'bar'
    
    d.get('baz','OMG AN ERROR')
    Out[69]: 'OMG AN ERROR'
    

    如果更换,你可以得到你想要的

    print Guide[str(Lookup)]
    

    badword = 'Sorry, the word you were looking for could not be found, would you like to try another search?' 
    print Guide.get(lookup,badword)
    

    跳出来的一件事是用大写字母命名你的字典。 一般来说大写字母会保存为类。 另一种有趣的事情是,这是我第一次看到实际用作字典的字典。 :)

    链接地址: http://www.djcxy.com/p/28887.html

    上一篇: Python dictionary failsafe

    下一篇: Python safe dictionary key access