【Python】リスト(配列)の初期化で内包表記を使う

Python リストの内包表記

Pythonでリスト(配列)を初期化する際に、内包表記という便利な構文があります。本記事では、内包表記を使ってリストを作成するサンプルを紹介します。

Pythonのリスト内包表記

リストの内包表記の構文は以下になります。

出力したい要素 for 変数名 in リテラルなオブジェクト

実際に値を入れた例は以下のようになります。

シンプルな内包表記の例

初期値として全て0のリストを作る場合。

初期値が0のリスト

copy

sample_list = [0 for i in range(5)]
print(sample_list)
# [0, 0, 0, 0, 0]

初期値として2の倍数を入れたリストを作る場合には、以下のように出力したい要素にi*2とすればOKです。

初期値が2の倍数のリスト

copy

sample_list = [i*2 for i in range(6)]
print(sample_list)
# [0, 2, 4, 6, 8, 10]

初期値として文字列を入れたリストを作ることも可能です。

初期値文字列のリスト

copy

sample_list = ['*' for i in range(6)]
print(sample_list)
# ['*', '*', '*', '*', '*', '*']

if文を使った内包表記の例

また、内包表記の中にif文を書くことで、リストに出力する要素を絞ることも可能です。Python本当に便利ですね。

if文を利用して2の倍数だけ初期値として出力

copy

sample_list = [i for i in range(6) if i % 2 == 0]
print(sample_list)
# [0, 2, 4]

二次元配列の内包表記の例

内包表記を使うと、二次元配列の初期化も簡単に実装することが可能です。

初期値0の二次元配列

copy

sample_list = [[0 for i in range(6)] for j in range(3)]
print(sample_list)
# [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]

その他のサンプルとしては、以下のように九九の表も簡単に作成できます。出力したい要素をi*jとすることで実現できます。

九九の二次元配列

copy

sample_list = [[i*j for i in range(1,10)] for j in range(1,10)]
print(sample_list)
# [[1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 4, 6, 8, 10, 12, 14, 16, 18], [3, 6, 9, 12, 15, 18, 21, 24, 27], [4, 8, 12, 16, 20, 24, 28, 32, 36], [5, 10, 15, 20, 25, 30, 35, 40, 45], [6, 12, 18, 24, 30, 36, 42, 48, 54], [7, 14, 21, 28, 35, 42, 49, 56, 63], [8, 16, 24, 32, 40, 48, 56, 64, 72], [9, 18, 27, 36, 45, 54, 63, 72, 81]]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です