このコードは、Pythonのリスト内包表記(List Comprehension)を使って、1から5までの数字を順番に二乗し、その結果をリストとして生成する例です。
各部分の説明
1. range(1, 6)
- 意味:
range(1, 6)
は、1から5までの連続した整数を生成します(6は含まれません)。- 生成される数値:
1, 2, 3, 4, 5
- 生成される数値:
2. x ** 2
- 意味:
x ** 2
は、x
の2乗(x × x)を計算する式です。- 例えば、
x = 2
のとき、x ** 2 = 4
- 例えば、
3. for x in range(1, 6)
- 意味:リスト内包表記では、この部分が「繰り返し処理」を表します。
range(1, 6)
の中のすべての値を順番にx
に代入し、リストを構築します。
4. [x ** 2 for x in range(1, 6)]
- 意味:リスト内包表記の形式です。
- 「
for x in range(1, 6)
」の範囲で繰り返し計算した結果(x ** 2
)を1つずつリストに追加します。 - 処理の流れ:
x = 1
→1 ** 2 = 1
x = 2
→2 ** 2 = 4
x = 3
→3 ** 2 = 9
x = 4
→4 ** 2 = 16
x = 5
→5 ** 2 = 25
- 「
出力結果
pythonコードをコピーするprint(squares)
[1, 4, 9, 16, 25]
が出力されます。
リスト内包表記のメリット
- 簡潔:forループを使わずに1行でリストを生成できます。
- 効率的:リストを直接生成するため、コードがわかりやすく、処理が高速になる場合もあります。
同じ処理をforループで書くと:
リスト内包表記を使わずに書くと、以下のようになります:
squares = []
for x in range(1, 6):
squares.append(x ** 2)
print(squares) # 出力: [1, 4, 9, 16, 25]
リスト内包表記はこれを1行でまとめたものです!
コメント