問題一覧に戻る
上級高度な機能
問題99: ジェネレータ式
ジェネレータ式は、リスト内包表記と似た構文で、角括弧[]の代わりに丸括弧()を使います。リスト内包表記が全ての値を即座に生成するのに対し、ジェネレータ式は値を必要に応じて生成するため、メモリ効率が良く、大量のデータを扱う際に有効です。
# ジェネレータ式
numbers = [1, 2, 3, 4, 5]
# リスト内包表記
squares_list = [x**2 for x in numbers]
print(f"List: {squares_list}")
# ジェネレータ式
squares_gen = for x in numbers
print(f"Generator: {squares_gen}")
print(f"Values: {list(squares_gen)}")