【Python】リスト内包表記を知る

こんにちは!

皆さんはリスト内包表記というものを知っていますか?

Pythonをしっかりと学習している方なら当たり前だと思いますが、初心者の方や、他言語しか触ったことがないといった方にはあまり馴染みのない言葉かもしれません。

最初は、リスト内包表記は読みづらく、使いたくないと感じる人が多いと思います。

ですが、リスト内包表記は、慣れたらとても使いやすですし、処理速度の面でも利点があるので、しっかりと学習して身につけていきましょう!


1. リスト内包表記

では早速、リスト内包表記を見ていきましょう。

基本的な書式は以下のようになります。

[ 式 for 変数 in イテラブル]

これだけ見ても、初心者にはどう使えば良いかわかりませんね。

1.1 リスト内包表記を用いたサンプルプログラム

次に例を見ていきましょう。

次のプログラムは、リスト内包表記を用いた、要素に0~9の数字を持つリスト生成するプログラムです。

list1 = [i for i in range(10)]
print(list1)

実行結果

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

こう見れば、説明がなくてもどのような動作が行われるか簡単にわかりますね!

1.2 リスト内包表記を用いずに表したサンプルプログラム

先ほどののプログラムをリスト内包表記を用いずに表してみましょう。

次のプログラムは、リスト内包表記を用いずに、要素に0~9の数字を持つリスト生成するプログラムです。

list2 = []
for i in range(10):
    list2.append(i)
print(list2)

リスト内包表記を用いた場合には、2行で表せていたのですが、リスト内包表記を用いないと4行にもなってしまいました。

リスト内包表記を用いた方がかなりスッキリして見えますね!

先ほども述べましたが、リスト内包表記を用いた方が処理速度の面でも利点があります。

リスト内包表記に慣れるために、ちょっとしたリスト内包表記の応用についてみていきましょう。


2. if文を用いたリスト内包表記

リスト内包表記は、条件式を指定することもできます。

基本的な書式は以下のようになります。

[ 式 for 変数 in イテラブル if 条件式]


2.1 リスト内包表記を用いたサンプルプログラム

先ほどと同様に例を見ていきましょう。

次のプログラムは、要素に0, 2, 4, 6, 8の数字を持つリストを生成するプログラムです。

list3 = [i for i in range(10) if i%2==0]
print(list3)

実行結果

[0, 2, 4, 6, 8]

ifの後の条件式によって、条件を指定することができました。

2.2 リスト内包表記を用いずに表したサンプルプログラム

上記のプログラムをリスト内包表記を用いずに表してみましょう。

list4 = []
for i in range(10):
    if i % 2 == 0:
        list4.append(i)
print(list4)

リスト内包表記を用いた場合には、変わらず2行で表せていたのですが、リスト内包表記を用いないと5行にもなってしまいましたね。

やはりリスト内包表記を用いた方が簡単ですね!


3. まとめ

いかがでしたか?

ざっと見ていただければリスト内包表記がどのようなものか理解できたと思います。

リスト内包表記に出会った時に、「なんだこの書き方・・・」などと思わずに、リスト内包表記に気づけるようになったのではないかと思います。

Pythonのプログラムを書く上で、リスト内包表記は身につけるべき技術です。

なので、プログラムを書き終わった後にさっと、リスト内包表記で表せる部分はないかと考えるようにしましょう。

そうすることで、リスト内包表記に慣れ、スラスラとリスト内包表記でプログラムを記述することができるようになります!


コメントを残す

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