在 javascript 中,我们可以使用 || 运算符来设置一个变量,因为它在第一个表达式处停止,结果是一个真值。
python中以下内容的等价物是什么?
var myNumber = dictionary['myNumber'] || 3
在 javascript 中,我们可以使用 || 运算符来设置一个变量,因为它在第一个表达式处停止,结果是一个真值。
python中以下内容的等价物是什么?
var myNumber = dictionary['myNumber'] || 3
我会去
myNumber = dictionary.get('myNumber', 3)
如果你只想要一个真值或 3,那么你会这样做:
myNumber = dictionary.get('myNumber') or 3
myNumber = dictionary['myNumber'] if dictionary['myNumber'] else 3
同样简单,只需使用or
而不是||
myNumber = dictionary['myNumber'] or 3
您可以使用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
可能会有所不同,因此对于案例的答案可能会有所不同。
相同的想法,不同的语法:
myNumber = dictionary.get('myNumber') or 3
.get()
对于不存在的键返回None
(非真实),或者如果键存在则返回值本身,就像 javascript 的[]
. or
评估它遇到的第一个真实值,就像 javascript 的||
.
您需要捕获由不存在的值引发的错误,如下所示:
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)