1

私の知る限り、Pythonには次の2つがありTernary Operatorsます:

  1. a if テスト else b

  2. テストと a または b

それらは同じ目標を達成しているようで、どちらもラムダ関数で使用できます。

>>> (lambda x: True if x > 0 else False)(5)
True
>>> (lambda x: True if x > 0 else False)(-5)
False

>>> (lambda x: x > 0 and True or False)(5)
True
>>> (lambda x: x > 0 and True or False)(-5)
False

質問

どちらか一方を使用する必要がある場合はありますか?

4

1 に答える 1

0

それらは異なる結果を生み出す可能性があります:

In [30]: (lambda x: x and 0 or 1)(True)
Out[30]: 1

In [31]: (lambda x: 0 if x else 1)(True)
Out[31]: 0
于 2013-07-14T22:28:14.240 に答える