• 2018-08-17
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/08/python.html

Pythonで文字列が空の時に別の値を初期値とする

JavaにはApache Commons のStringutils に「Stringutils.defaultString」というメソッドがありまして、
文字列が空かどうかを判定して、空だったら引数の値で初期化してくれるという便利メソッドがあります。

同じことをPythonでやる場合はどうしたら良いのかしら。


普通に実装する場合

やりたい事としては、こういうことです。


  • str1がNoneではなかったら、str1にstr2をセットする。
  • str1がNoneだったら、str2にはデフォルト値をセットする。


str1 = None
str2 = None

if str1:
    str2 = str1
else:
    str2 = "default"

# default
print(str2)


ただ、これだとやはりソースが冗長な感があります。

三項演算子を使って実装する場合

Pythonには三項演算子がありますので、これを使うことで上記のソースはスッキリ短く書くことが出来ます。


str1 = None
str2 = None
str2 = str1 if str1 else "default"

# default
print(str2)


if文が一行にまとまって随分とスッキリしました。

要点

三項演算子の要点は以下です。

(変数) = (条件がTrueのときの値) if (条件) else (条件がFalseのときの値)

セオリーを理解していれば応用も利かせられるでしょう。

0 件のコメント:

コメントを投稿

お気軽にコメント下さい。