在javascript中,我们可以使用||运算符设置变量,因为它在第一个表达式处停止,从而产生一个真值 python中以下内容的等价物是什么?
var myNumber = dictionary['myNumber'] || 3
答案 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)