次のようなコードがあるとします:
if A[i] > B[j]:
x = A[i]
i += 1
else:
x = B[j]
j += 1
もっと簡単に書く方法はありますか? Python にはこれに似た構文がありますか?
x = (A[i] > B[j]) ? A[i] : B[j]
((A[i] > B[j]) ? i : j) += 1
ベストアンサー1
最も読みやすい方法は
x = 10 if a > b else 11
and
ただし、およびも使用できますor
。
x = a > b and 10 or 11
ただし、「Zen of Python」では「読みやすさが重要」とされているので、最初の方法を採用してください。
また、 の代わりに変数を置くと10
、 と評価され、 and-or トリックは失敗しますFalse
。
ただし、割り当て以上のものがこの条件に依存する場合は、次のように記述した方が読みやすくなります。
if A[i] > B[j]:
x = A[i]
i += 1
else:
x = A[j]
j += 1
コンテナに入れない限りはi
。j
しかし、なぜそれが必要なのかを説明すれば、必要ではないことが判明する可能性もあります。