[box02 title="この記事のINDEX"]
[/box02]
リスト内包表記でジェネレータを作成する方法
pythonでのリスト内包表記の使い方については、こちらの記事で紹介しました。
リスト内包表記は、入力が大量だと、膨大な量のメモリを消費する可能性があります。
そのため、Pythonで膨大な量の入力に対して、リスト内包表記を用いる場合には、ジェネレータ式を用います。
ジェネレータ式作成の場合には以下のように()でリスト内包表記を囲います。
x = (リスト内包表記)
また、next(ジェネレータ式)
とすることで値を表示して、次の位置に進みます。
import sys value = [x for x in range(10000)] print(sys.getsizeof(value)) # メモリ量 87624バイト tup = tuple(x for x in range(10000)) print(sys.getsizeof(tup)) # メモリ量 80048バイト gen = (x for x in range(10000)) print(sys.getsizeof(gen)) # メモリ量 120バイト #ジェネレータの使い方 print(next(gen)) # 0 print(next(gen)) # 1