Pythonでは、ジェネレータを使用してリストを効率的に拡張することができます。ジェネレータは遅延評価を行うため、大量のデータを扱う際にメモリ効率が良くなります。
ジェネレータをリストに拡張する基本的な方法
Pythonのlist
クラスにはextend
メソッドがあり、これを使用してジェネレータの各要素をリストに追加することができます。
def generator():
for i in range(10):
yield i
lst = []
lst.extend(generator())
このコードでは、generator
関数が0から9までの数を順に生成し、それらがlst
に追加されます。
注意点
ジェネレータをリストに拡張する際には、ジェネレータがリスト自体を参照している場合に無限ループに陥る可能性があります。そのため、ジェネレータがリスト自体を参照している場合には、ジェネレータの評価を完了させてからextend
メソッドを呼び出すことが推奨されます。
lst = [1, 2]
lst.extend([x*2 for x in lst])
このコードでは、リスト内包表記を使用してジェネレータの評価を完了させ、その結果をlst
に追加しています。
以上、Pythonでジェネレータをリストに拡張する方法について説明しました。このテクニックを活用することで、大量のデータを効率的に扱うことができます。