Python リスト内包表記を使用してfor文を1行で記述する

Python リスト内包表記を使用してfor文を1行で記述する

pythonで、リスト内包表記を使用してfor文を1行で記述するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

リスト内包表記使い方

基本的に、以下の形で使用することができます。

[iの処理 for i in リスト]

例えば、以下のリスト内の値を全て2倍するコードは、

lst = [1,2,3,4,5,6]

newlst = []
for i in lst:
  newlst.append(i * 2)

print(newlst)
# [2, 4, 6, 8, 10, 12]

リスト内包表記を使うと、1行で記述することが可能です。

lst = [1,2,3,4,5,6]

newlst = [i * 2 for i in lst]
# [2, 4, 6, 8, 10, 12]

条件式

次のような形で、条件式を追加することもできます。

[iの処理 for i in リスト if 判定式]

以下は、リスト内の偶数のものだけ、2倍するサンプルコードとなります。

lst = [1,2,3,4,5,6]

newlst = [i * 2 for i in lst if i % 2 == 0]

print(newlst)
# [4, 8, 12]