スニペット
xi = xrange(10)
zip(xi,xi)
と
xi = iter(range(10))
zip(xi,xi)
異なる振る舞いをします。私は得ることを期待した
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
最初のスニペットでも同様ですが、返されます
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]
代わりは。暗黙のコンテナが静かにコピーされているようです。誰かがここで何が起こっているのか説明できますか? そのようなセマンティクスを選択する背後にある推論。
>>> sys.version
'2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)]'