for文を利用したリストの初期化は、通常の書き方では複数行のプログラムになってしまいますが、1行だけにまとめることも可能です。
本記事では、1行だけのfor文でリストの初期化を行う方法について解説します。
実際にプログラムを作成してみる
1行だけのfor文でリストの初期化を行う方法の概要、実装例を紹介します。
基本的な書き方
「1行だけのif文による変数の初期化」の基本的な書き方は以下の通りです。
リスト = [i for i in range(a, b, c)] ... a~bの値をc刻みでリストに格納
実装例
上記の書き方を基にプログラムを作成します。
if __name__ == '__main__':
arr_a = [i for i in range(5)]
print(arr_a)
arr_b = [i for i in range(5, 10)]
print(arr_b)
arr_c = [i for i in range(0, 50, 5)]
print(arr_c)
このプログラムを実行すると以下の出力結果が得られます。
[0, 1, 2, 3, 4] [5, 6, 7, 8, 9] [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]
実装例 – if文を追加
上記の書き方にif文を追加して初期化のバリエーションを増やすことも可能です。
if __name__ == '__main__':
arr_a = [i for i in range(10) if i%2!=0]
print(arr_a)
arr_b = [i if i%2!=0 else 0 for i in range(10)]
print(arr_b)
このプログラムを実行すると以下の出力結果が得られます。
[1, 3, 5, 7, 9] [0, 1, 0, 3, 0, 5, 0, 7, 0, 9]