在条件中询问键是否存在以及在python中是否为真

beg*_*egs 2 python conditional-statements

我想过滤条件是否存在键,如果它是真的。有没有办法使这个过程更短,更有效?

d = {'x': True}

if 'x' in d and d['x']:
   print('good')
Run Code Online (Sandbox Code Playgroud)

Dee*_*ace 7

使用不会缩短很多,但肯定会更加习惯和有效(因为无论密钥是否存在,它都只执行一次查找).get。如果键不存在,它将返回False

if d.get('x', False):
    print('good')
Run Code Online (Sandbox Code Playgroud)

.getNone如果False未提供,将默认返回,因此在大多数情况下,这等效于

if d.get('x'):
    print('good')
Run Code Online (Sandbox Code Playgroud)