我可以在Python的一行中编写if else语句吗?

dan*_*jar 1 python if-statement shortcut

我不是在谈论三元运算符.我可以在值表达式之外的一行中编写if else语句吗?我想缩短这段代码.

if x == 'A':
    return True
if x == 'B':
    return True
if x == 'C':
    return True
return False
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 6

您可以in像这样使用运算符:

return x in ('A', 'B', 'C')
Run Code Online (Sandbox Code Playgroud)

对于Python 3.2+:

return x in {'A', 'B', 'C'}
Run Code Online (Sandbox Code Playgroud)

来自docs:

Python的窥孔优化器现在可以将x这样的模式识别{1, 2, 3} 为对一组常量中的成员资格的测试.优化器重新编写set为a frozenset并存储预构建的常量.

既然速度惩罚已经消失,那么使用set-notation开始编写成员资格测试是切实可行的.


iCo*_*dez 5

您可以使用in以下命令缩短代码:

return x in ("A", "B", "C")
Run Code Online (Sandbox Code Playgroud)

或者,如果x是单个字符:

return x in "ABC"
Run Code Online (Sandbox Code Playgroud)