if
/else
ステートメントをPythonで1行に
圧縮する方法はありますか?
私はよくあらゆる種類の近道を目にしますが、ここにも当てはまるのではないかと思います。
464403 次
4 に答える
328
「三項」式を実行する Python の方法の例:
i = 5 if a > 7 else 0
に変換します
if a > 7:
i = 5
else:
i = 0
これは、リスト内包表記を使用する場合、または場合によっては return ステートメントで実際に役立ちますが、それ以外の場合は、読み取り可能なコードを作成するのにそれほど役立つかどうかはわかりません。
読みやすさの問題は、この最近の SO の質問で、 python で if-else ステートメントを使用するよりも優れた方法で詳細に議論されました。
また、同じタスクを達成するための他のさまざまな巧妙な(そしてやや難読化された) 方法も含まれています。それらの投稿に基づいて読むだけの価値があります。
于 2012-07-17T19:15:52.180 に答える
68
Pythonは三項演算子if
として使用できます:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
于 2012-07-17T19:15:16.787 に答える
41
値としてのみ使用:
x = 3 if a==2 else 0
また
return 3 if a==2 else 0
于 2012-07-17T19:14:57.460 に答える
28
次の条件式があります。
a if cond else b
しかし、これは表現であり、ステートメントではありません。
if ステートメントでは、ブロックが次のようなものであれば、ブロックの本体と同じ行にif
(orelif
または) を記述できます。else
if something: somefunc()
else: otherfunc()
しかし、これはフォーマット スタイルの問題としてお勧めできません。
于 2012-07-17T19:16:21.357 に答える