Pythonのリスト内表記とは?|Python基礎

リスト内表記とは、for文を1行で書いて、新しいリストを作る方法です。

for文に関してはこちら

例えば、

  • 数字をまとめて作る
  • 値を変換した新しいリストを作る
  • 条件に合うものだけ取り出す

このようなときによく使います。

基本の書き方

[式 for 変数 in データ]

最初は少し難しく見えますが、「for文を短く書いたもの」と考えると分かりやすいです。

コード例① 基本のリスト内表記

numbers = [num for num in range(5)]

print(numbers)

上記のコードは、基本のリスト内表記の例です。

[0, 1, 2, 3, 4]

上記は、実行結果です。

このコードでは、for num in range(5) によって、0から4までの数字を順番に取り出し、[num] として新しいリストを作っています。

コード例② 値を変換する

numbers = [num * 2 for num in range(5)]

print(numbers)

上記のコードは、値を変換する例です。

[0, 2, 4, 6, 8]

上記は、実行結果です。

このコードでは、num * 2 としています。

そのため、、for num in range(5) によって、0から4までの数字を作成し、それらの数字を2倍にして新しいリストを作っています。

コード例③ 条件を付ける

numbers = [num for num in range(10) if num % 2 == 0]

print(numbers)

上記のコードは、条件を付ける例です。

[0, 2, 4, 6, 8]

上記は、実行結果です。

このコードでは、if num % 2 == 0 によって、偶数だけを取り出しています。

条件を追加すると、必要な値だけをリストにできます。

numbers = [num for num in range(10) if num % 2 == 0 if num < 7]

print(numbers)

上記のコードは、先程のコードに、新たに条件を追加した例です。

[0, 2, 4, 6]

上記は、実行結果です。

このコードでは、if num < 7 によって、さらに7より小さいの数値だけを取り出しています。

これにより、先程は [0, 2, 4, 6, 8] でしたが、今回は [0, 2, 4, 6] のリストが出力されました。

このように、さらに条件を追加していくこともできます。

通常のfor文との比較

numbers = []

for num in range(5):
    numbers.append(num)

print(numbers)

上記のコードは、通常のfor文で作成した例です。

for文に関してはこちら

この場合、numbers = [] で最初に空リストを作成しています。

次に、for num in range(5): によって、0 から 4 までの数字を順番に取り出しています。

そして、 numbers.append(num) を使って、その数字を空のリストに1つずつ追加しています。

最後に、print(numbers) で完成したリストを表示しています。

numbers = [num for num in range(5)]

print(numbers)

上記のコードは、リスト内表記で作成した例です。

どちらも同じ結果になりますが、リスト内表記の方が短く、読みやすいことがあります。

しかし、複雑すぎる処理を無理にリスト内表記で書くと、逆に読みにくくなります。

そのため、for文かリスト内表記にするかは、作成しているコードによって決めるのが良いです。

Comment

Translate »