什么是'var myNumber = dictionary ['myNumber'] ||的python等价物3

时间:2013-07-09 00:29:22

标签: javascript python

在javascript中,我们可以使用||运算符设置变量,因为它在第一个表达式处停止,从而产生一个真值 python中以下内容的等价物是什么?

var myNumber = dictionary['myNumber'] || 3

6 个答案:

答案 0 :(得分:4)

我会去

myNumber = dictionary.get('myNumber', 3)

如果您只想要一个真实值或3,那么您可以这样做:

myNumber = dictionary.get('myNumber') or 3

答案 1 :(得分:2)

myNumber = dictionary['myNumber'] if dictionary['myNumber'] else 3

答案 2 :(得分:0)

同样简单,只需使用or代替||

myNumber = dictionary['myNumber'] or 3

答案 3 :(得分:0)

您可以使用dict.get并使用or代替||

的Python:

>>> dic = {'a':1, 'b': False}
>>> dic.get('a') or 3
1
>>> dic.get('b') or 3           #Key with falsy value
3
>>> dic.get('c') or 3           #missing key
3

JS:

> dic = {'a':1, 'b': false}
> dic['a'] || 3
1
> dic['b'] || 3
3
> dic['4'] || 3
3

请注意,在python和js中定义为Falsy的值集可能会有所不同,因此案例的答案可能会有所不同。

答案 4 :(得分:0)

同样的想法,不同的语法:

myNumber = dictionary.get('myNumber') or 3
对于不存在的密钥,

.get()会返回None(非真实),如果密钥存在,则返回值本身,就像javascript的[]一样。 or评估它遇到的第一个真实价值,就像javascript的||一样。

答案 5 :(得分:-1)

您需要捕获由不存在的值引发的错误,如下所示:

try:
    myNumber = dictionary['myNumber']
except KeyError:
    myNumber = 3

然后你可以将它构建成一个函数:

def dictAssign(dictionary,attempt,fail):
    try:
        return dictionary[attempt]
    except KeyError:
        return fail

然后你可以通过调用函数来使用它:

myNumber = dictAssign(dictionary,"myNumber",3)