1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python リスト内包表記とは

Posted at

問題の発生

いままで、「リストの内包表記って結局、forやらifが続いているコードをちぢめただけでしょ?学ぶのはあとでいいや」と敬遠してきた。しかし、プログラミングやpythonの学習で自作のプログラムを組んでいくと、コードがだらだらと長くなってしまい、あとから見返すと自分ですらわかりにくいことがあった。そこで、もっと簡潔にわかりやすく書きたいと感じるようになったので学習してみることにした。

基本的な形

for文でリストに格納する

my_list = [変数 for 変数 in 繰り返すもの]

例)

my_list = [i for i in range(5)]
print(list)

#結果
#[0, 1, 2, 3, 4]

forとif

条件に一致するものだけリストに格納される

my_list = [変数 for 変数 in 繰り返すもの if 条件]

例)

my_list = [i for i in range(5) if i % 2 == 0  ]
print(my_list)
#結果
#[0, 2, 4]

三項演算子

三項演算子の結果の値がリストに格納される

my_list = [Trueのときの動作 if 条件変数に対して else Falseのときの動作 for 変数 in 繰り返す処理]
my_list = ['偶数 ' if i % 2 == 0 else i for i in range(5)]
print(my_list)
#結果
#['偶数 ', 1, '偶数 ', 3, '偶数 ']

ifの違い

ifがforの後に来ると条件に一致するものがリストに追加される。
ifがforの前に来ると条件に基づいて要素の値が変更され追加される。

注意点

リスト内包表記はリストを新規作成することに適しているため、既存のリストに追加する場合には append や extend を使う。リスト内包表記で直接 append や extend を使うことはできない。

感想

リスト内包表記を使うことで、コードが短く、かつ読みやすくなると感じた。ただし、複雑な処理を詰め込みすぎると逆にわかりにくくなるので、使いすぎには注意が必要。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?