if 'a' in dict:
dict['a'] do something
if 'b' in dict:
dict['b'] do something
# After checking the above two if statements, run the else statement below
else:
dict do something
我想检查 dict
中是否有 'a'
或 'b'
。如果我使用elif
语句,那么如果'a'
在dict
中,则检查'b'
将被跳过。
是否可以检查以上两种情况,如果'a'
和'b'
都不在dict
中,那么我们else
做其他事情?
不过我可以用一种乏味的方式来实现它。
if `'a' or 'b'` in dict:
if 'a' in dict:
dict['a'] do something
if 'b' in dict:
dict['b'] do something
else:
dict do something
最佳答案
dictionary = {"a":1, "b":2}
if (cond1 := "a" in dictionary) | (cond2 := "b" in dictionary):
if cond1:
pass
if cond2:
pass
else:
pass
使用最近添加的语言 - :=
运算符,您可以捕获这两个条件的值。虽然您仍然需要分别检查它们是真是假,但它可以让您跳过重复相同的检查两次。
|
代替 or
,因为后者的惰性评估 - 如果 cond1 为 True,则永远不会检查第二个条件,并且 cond2 将未定义。 |
将确保检查这两个条件,但它使解决方案不那么漂亮。
关于Python 是否可以将两个 if 和一个 else 语句放在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70963257/