Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Python・制御構文】~リスト内包表記~


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます!Shotaです。今日も早速、Pythonに関する記事を書いていきます!今日は「リスト内包表記」について詳しく説明していきます!

 

【目次】

 

リスト内包表記

Pythonでは、新しいリストを作る時にリスト内包表記を用いて書くとシンプルに書くことができます。

 

基本的な書き方

リスト内包表記の書き方は以下の通りです。

 

[変数 for 変数 in コンテナ]

 

リスト内包表記を用いて書く場合と、そうではない場合のコードを比較してみましょう。

 

x = []
for a in range(10):
    x.append(a)
print(f'リスト:{x}')

 

#リスト内包表記を使った場合
x = [a for a in range(10)]
print(f'リスト:{x}')

 

▼実行結果(両方とも同じ)

 

f:id:ShotaNukumizu_1000:20210427080537p:plain

 

リスト内包表記を使うだけでコードをより短く書くことが出来ます。繰り返し変数を代入していくので、forを用いて記述することには変わりありませんが、リスト内包表記の場合リストに要素を足すappendメソッドをわざわざ記入する必要がありません。

 

ifを用いた内包表記

基本的な型は以下の通りです。

 

[変数 for 変数 in コンテナ if 条件(else if式がFalseの場合)]

 

ただし、elseの部分は省略して書いても構いません。

 

以下のコードを書いて試してみましょう。(本記事ではifの場合しか記述しません)

 

x = []
for a in range(10):
    if a % 2 != 0:
        x.append(a)
print(f'奇数のリスト:{x}')

 

#リスト内包表記を使った場合
x = [a for a in range(10) if a % 2 != 0]
print(f'奇数のリスト:{x}')

 

▼実行結果(両方とも同じ)

f:id:ShotaNukumizu_1000:20210427081012p:plain

 

これは、0から9までの数で奇数をリストに格納して出力するプログラムです。

これも同様に、リスト内包表記の場合は繰り返しの処理であるforを中に書いてしまうだけです。そのため、ifの処理を書いたり、appendメソッドで要素を中に足すというような処理をコードにわざわざ書く必要がないのです。

 

まとめ

【本日のまとめ】

  • リスト内包表記を使うと以下のようなメリットがある。
  1. リストのappendメソッドを使う必要がない
  2. コンテナから必要な値を取り出すとき、ifやforで字下げする手間を省くことができる
  3. リストの中に処理を書いてしまえば簡単にリストを作成できる

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日はPythonで汎用性が非常に高い文法である、「関数」について解説していきます。

今日も最後まで読んでくださりありがとうございました!