if文を利用した変数の初期化は、通常の書き方では複数行のプログラムになってしまいますが、1行だけにまとめることも可能です。
本記事では、1行だけのif文で変数の初期化を行う方法について解説します。
実際にプログラムを作成してみる
1行だけのif文で変数の初期化を行う方法の概要、実装例を紹介します。
基本的な書き方
「1行だけのif文による変数の初期化」の基本的な書き方は以下の通りです。
変数 = 値① if 条件式 else 値② ... 条件式がTrueの場合 -> 値①を変数へ格納 条件式がFalseの場合 -> 値②を変数へ格納
実装例 – 変数の値は2パターン
上記の書き方を基にプログラムを作成します。
if __name__ == '__main__':
key = 'a'
val = 1 if key=='a' else 2 # 1を格納
print('key:a -> val={0}'.format(val))
key = 'b'
val = 1 if key=='a' else 2 # 2を格納
print('key:b -> val={0}'.format(val))
このプログラムを実行すると以下の出力結果が得られます。
key:a -> val=1 key:b -> val=2
実装例 – 変数の値は3パターン以上
上記の書き方に条件式を追加して分岐のパターンを増やすことも可能です。
if __name__ == '__main__':
key = 'a'
val = 1 if key=='a' else 2 if key=='b' else 3 # 1を格納
print('key:a -> val={0}'.format(val))
key = 'b'
val = 1 if key=='a' else 2 if key=='b' else 3 # 2を格納
print('key:b -> val={0}'.format(val))
key = 'c'
val = 1 if key=='a' else 2 if key=='b' else 3 # 3を格納
print('key:c -> val={0}'.format(val))
このプログラムを実行すると以下の出力結果が得られます。
key:a -> val=1 key:b -> val=2 key:c -> val=3