(python3の場合)
python docs では、関数が iterable を取ることがわかります。list()
python docs では、関数がイテレータを取ることもわかります。next()
だから私はIDLEでこれをしました:
>>> var = map(lambda x: x+5, [1,2,3])
>>> var
>>> next(v)
>>> list(v)
出力は次のとおりです。
<map object at 0x000000000375F978>
6
[7,8]
率直に言って、これは私が期待したものではありません。マップオブジェクトはイテレータですか、それともイテラブルですか? 違いはありますか?マップ オブジェクトが何であれ、list()
と関数の両方が機能することは明らかです。next()
なぜ両方が機能するのですか?