从字典获取值的最短方法,如果密钥不存在,则为默认值

时间:2015-08-27 18:33:13

标签: python dictionary

我很好奇,如果

p = 'padding' in ui and ui['padding'] or 0

是写作的最短路(或者如果有更短的方式)

if 'padding' in ui:
   p = ui['padding']
else:
   p = 0
在Python中

3 个答案:

答案 0 :(得分:12)

如果ui是字典,您甚至可以使用dict.get方法进行简化,例如

p = ui.get('padding', 0)

这里,如果字典中存在键padding,则返回与其对应的值。否则,将返回作为第二个参数传递的默认值。

答案 1 :(得分:4)

由于import行可能不会缩短,但您也可以将ui更改为collections.defaultdict

from collections import defaultdict

ui = defaultdict(lambda: 0)

然后你写你原来的方式就是:

ui['padding']

由于设置不是最短的整体,但一旦设置它就是最短的写出访问权。

答案 2 :(得分:2)

我认为这就是你要做的事情:

p = ui['padding'] if 'padding' in ui else 0

这称为ternary expression.