Python: リスト内包表記とは、使い方
リスト内包表記とは
リスト内包表記とは、
リストの内容を元に、
新しいリストを作成するための特殊な表記方法です。
リスト内包表記はコンプリヘンション(comprehension)とも呼ばれ、
英単語の comprehension には「内包」や「包含」といった意味があります。
書式
[式 for 変数 in リスト if 条件]
リストをループさせる場合によく使う 「for 変数 in リスト」という表記の前後に、 「式」や「if 条件」が加わっています。 全体は [] 角括弧で括り、「if 条件」は省略可能です。
リスト内包表記の使い方
では実際にリスト内包表記を使ってみます。
リストの各要素を2倍にした新しいリストを作る
まずはすべてのリスト要素に対して2倍にした新しいリストを作成します。 「if 条件」はありません。
li = [1, 2, 3, 4] # [式 for 変数 in リスト] new_li = [n * 2 for n in li] print(new_li) # [2, 4, 6, 8]
「if 条件」付きで新しいリストを作る
次は、リストの値が偶数の時だけ2倍にした新しいリストを作成します。 「if 条件」の箇所に「偶数の場合」という条件が加わっています。
結果として要素が2つの新しいリストが作成されます。
li = [1, 2, 3, 4]
# [式 for 変数 in リスト if 条件]
new_li = [n * 2 for n in li if n % 2 == 0]
print(new_li) # [4, 8]
リスト内包表記を使わずに記述する
上で記述したコードを、 リスト内包表記を使わずに記述すると次のようになります。
li = [1, 2, 3, 4] new_li = [] for n in li: if n % 2 == 0: new_li.append(n * 2) print(new_li) # [4, 8]
リスト内包表記を普段使わない人でも、 他人のコードを読み解く際には必要となってきますので、 リスト内包表記はぜひおさえておいてください。