次のコード例を検討してください。map
この例は、との間の機能の違いを強調するために示していますitertools.imap
。私が本当にやりたいことは、リスト内包表記では実行できません。実際の問題では、リストを作成するのではなく、より大きなnumpy配列を小さな配列で埋めているからです。したがって、以下のコードへの対応として、次のことを提案しないでください。[f(x) for x in range(3)]
例:
g = []
def f(x):
g.append(x)
私が得た結果map
と itertools.map:
map(f, range(3)) # Results in g = [0,1,2]
itertools.imap(f, range(3)) # Does not change g
関数g
によって行われるように変更したい。ただし、 Python 3のように動作する (または動作する) と
map
聞いたことがあります。Python 2.7 を使用していますが、イテレータ バージョンのマップを使用する正しい方法を学びたいと考えています。と同じ結果を得るにはどうすればよいですか?map
itertools.imap
itertools.imap
map
できます:
b = itertools.imap(f, range(3))
list(b) # This gives g = [0,1,2] if starting with an empty g.
これは正しい方法ですか、それともより良い方法はありますか?
前もって感謝します。