class PeekingIterator(Iterator):
- """An iterator that lets you peek at the next item on deck.
+ """An iterator that lets you peek() at the next item on deck.
+ Returns None when there is no next item (i.e. when __next__()
+ will produce a StopIteration exception).
>>> p = PeekingIterator(iter(range(3)))
>>> p.__next__()
collects a random sample (of size sample_size) of the stream that can
be queried at any time.
+ Note that until sample_size elements have been seen the sample will
+ be less than sample_size elements in length.
+
+ Note that if sample_size is > len(source_iter) then it will produce
+ a copy of source_iter.
+
>>> import collections
>>> import random
return self
def __next__(self) -> Any:
- item = self.source_iter.__next__() # or raise
+ item = self.source_iter.__next__()
self.stream_length_so_far += 1
# Filling the resovoir