Python 3におけるジェネレータ式とリスト内包表記

PYTHON3 チュートリアル

Python 3におけるジェネレータ式とリスト内包表記

Python 3では、ジェネレータ式とリスト内包表記は効果的なデータ処理手法として広く使用されています。それぞれの特徴や使いどころについて解説します。

リスト内包表記

リスト内包表記は、簡潔で読みやすいコードを書くための機能です。リスト内包表記を使うことで、forループや条件分岐を1行で表現することができます。

# リスト内包表記の例
numbers = [1, 2, 3, 4, 5]
squared_numbers = [num**2 for num in numbers]
print(squared_numbers)

上記のコードでは、元のリストの各要素を2乗して新しいリストを生成しています。出力結果は [1, 4, 9, 16, 25] となります。

ジェネレータ式

ジェネレータ式は、イテレータとしての機能を持つオブジェクトを生成する方法です。リスト内包表記との違いは、ジェネレータ式は要素を一度にメモリに格納せずに逐次生成する点です。

# ジェネレータ式の例
numbers = [1, 2, 3, 4, 5]
squared_numbers_generator = (num**2 for num in numbers)
print(next(squared_numbers_generator))
print(next(squared_numbers_generator))

上記のコードでは、ジェネレータ式を使って2乗した数値を逐次生成しています。出力結果は 14 となります。

ジェネレータ式とリスト内包表記の使い分け

リスト内包表記は要素を一度に全て生成する際に有効であり、ジェネレータ式は逐次的に要素を生成する際に適しています。メモリ使用量や処理速度を考慮して使い分けることが重要です。

Python 3におけるジェネレータ式とリスト内包表記について、基本的な概念や使い方を解説しました。適切に活用することで、効率的なデータ処理が可能となります。

ジェネレータ式とリスト内包表記は、Python 3における便利な機能です。

リスト内包表記は、リストを生成するための簡潔な方法です。例えば、[x**2 for x in range(5)]というリスト内包表記は、0から4までの数値を2乗してリストに格納します。

一方、ジェネレータ式は、イテレータを生成するための機能です。リスト内包表記と似ていますが、()で囲む点が異なります。ジェネレータ式は、要素を一度に生成し、メモリを節約することができます。

例えば、(x**2 for x in range(5))というジェネレータ式は、0から4までの数値を2乗して順次取得できます。

リスト内包表記はリストを生成するのに対し、ジェネレータ式はイテレータを生成するため、大量のデータを扱う際にメモリ効率が向上します。

購読
通知
0 Comments
Inline Feedbacks
View all comments