回答編集履歴
3
修正
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`Louis0616`さんの説明のとおりですが、一点だけ補足注意点を。
|
2
2
|
`map`はイテレータでもあるので、一度評価(実行)すると、末尾に位置します。
|
3
|
-
す
|
3
|
+
すなわち、以下のコードにおいて2回目以降`list(m)`と実行しても(末尾から動かないので)結果は空になります。
|
4
4
|
|
5
5
|
ちなみにイテレータの位置を先頭に戻す手段は一般的には用意されていません。
|
6
6
|
[イテレータ (iterator)](https://docs.python.jp/3/howto/functional.html#iterators)
|
2
参考追加
answer
CHANGED
File without changes
|
1
参考追加
answer
CHANGED
@@ -6,6 +6,9 @@
|
|
6
6
|
[イテレータ (iterator)](https://docs.python.jp/3/howto/functional.html#iterators)
|
7
7
|
> イテレータは次に進むことしかできませんのでご注意ください; 前の要素を手に入れたり、イテレータをリセットしたり、コピーを作ったりする方法はありません。イテレータがオブジェクトとしてそうした追加機能を 持つことはできますが、プロトコルでは __next__() メソッドのことしか指定されていません。ですから関数はイテレータの出力を使い尽くして しまうかもしれませんし、同じストリームに何か別のことをする 必要があるなら新しいイテレータを作らなくてはいけません。
|
8
8
|
|
9
|
+
参考:[Listing a filter object twice will return a blank list?
|
10
|
+
](https://stackoverflow.com/questions/19759247/listing-a-filter-object-twice-will-return-a-blank-list)
|
11
|
+
|
9
12
|
```Python
|
10
13
|
import time
|
11
14
|
|