Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
13
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

三項演算子を「a or b」という形式に書き直す

この記事は Pythonのコードを短く簡潔に書くテクニック Advent Calendar 2017 の16日目です。

はじめに

条件によって値を変えたいときは三項演算子1が便利です。
しかし、特定の条件のときは三項演算子をa or bという書き方に置き換えることで簡潔に書き直すことができます。

if文で書いた場合

if a:
    return a
else:
    return b

三項演算子で書いた場合

return a if a else b

a or bで書いた場合

return a or b

三項演算子でa if a else bのようにifの条件と結果で返す値が同じ場合にはa or bという書き方に置き換えることができます。

a or bと書いた場合、aが真になる場合はaを、そうでなければbになります。

真になる条件

先ほど「真になる」という表現を使いましたが、これはa == Trueということではなく、bool(a) == Trueという意味です。

bool(a) == Trueになる条件は型によって違います。
組み込み型で代表的なものを挙げると以下のようになっています。

真となる条件
int,floatなどの数値型 a != 0
str,list,dictなど長さを持つ型 len(a) != 0

詳細はobject.__bool__()を参照してください。

参考


  1. Pythonドキュメントでは 条件式 (しばしば "三項演算子" と呼ばれます)と書かれており、「条件式」が正式名称のようですが、ここでは他言語でも一般的に使われている「三項演算子」という表現を使います。 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
13
Help us understand the problem. What are the problem?