見出し画像

≮Python≯ リスト内包表記の基礎

改訂版を書きました!こちらをご覧ください。


下記は、Pythonチュートリアル
のリスト内包表記についての引用です。
取りあえず、今は読み飛ばしてください。

リスト内包表記は、括弧の中の式、 for 句、そして0個以上の for か if 句で構成されます。 リスト内包表記の実行果は、 for と if 句のコンテキスト中で式を評価した結果からなる新しいリストです。


まず、最初に簡単なサンプルプログラム①を示します。


サンプルプログラム①

# indent ⇒ ____

l = []

for x in range(5):
____l.append(x)

print(l)


<実行結果>

[0, 1, 2, 3, 4]


サンプルプログラム①は、0〜4 が順番に入っているリストを作成します。

サンプルプログラム②は、リスト内包表記を使って、サンプルプログラム①を書き換えたものです。

リスト内包表記は全体を [ ] で囲んで書きます。


サンプルプログラム②

l = [x for x in range(5)]

print(l)


<実行結果>

[0, 1, 2, 3, 4]


リスト内包表記を使えば、この
様に簡潔に書く事が出来ます。


サンプルプログラム③は、0〜4 を 2倍した値が格納されたリストを作成します。

通常の書き方とリスト内包表記を使った例を同時に示します。


サンプルプログラム③

# indent ⇒ ____

l = []

for x in range(5):
____l.append(x * 2)

l2 = [x * 2 for x in range(5)]

print(l)
print(l2)


<実行結果>

[0, 2, 4, 6, 8]
[0, 2, 4, 6, 8]


ここで、この記事冒頭の Pythonチュートリアルのリスト内包表記についての引用部分を読んでみてください。理解しやすいと思います。

リスト内包表記は for 句、そして0個以上の for か if 句で構成されます。

リスト内包表記は、新しいリストを返します。


最後に for 句と if 句で構成されたサンプルプログラム④を示します。

サンプルプログラム③に加筆したものです。

通常の書き方とリスト内包表記を使った例を同時に示すので見比べてください。


サンプルプログラム④

# indent ⇒ ____

l = []

for x in range(5):
____if x > 2: # x が 2 より大きければ
________l.append(x * 2)

l2 = [x * 2 for x in range(5) if x > 2]

print(l)
print(l2)


<実行結果>

[6, 8]
[6, 8]


これより複雑なリスト内包表記に付いて知りたい方は、下記リンク先を参照してください。

ここまで理解出来ていれば、より複雑なリスト内包表記も理解出来ると思います。



#Python  #Python3 #プログラミング を #Android スマホで勉強中 !
#リスト内包  #リスト内包表記