teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2018/03/14 08:43

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `Louis0616`さんの説明のとおりですが、一点だけ補足注意点を。
2
2
  `map`はイテレータでもあるので、一度評価(実行)すると、末尾に位置します。
3
- ると、2回目以降`list(m)`と実行しても(末尾から動かないので)結果は空になります。
3
+ なわち以下のコードにおいて2回目以降`list(m)`と実行しても(末尾から動かないので)結果は空になります。
4
4
 
5
5
  ちなみにイテレータの位置を先頭に戻す手段は一般的には用意されていません。
6
6
  [イテレータ (iterator)](https://docs.python.jp/3/howto/functional.html#iterators)

2

参考追加

2018/03/14 08:43

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
File without changes

1

参考追加

2018/03/14 08:40

投稿

8524ba23
8524ba23

スコア38352

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