17 lines
417 B
Python
17 lines
417 B
Python
class S_of_n_creator():
|
|
def __init__(self, n):
|
|
self.n = n
|
|
self.i = 0
|
|
self.sample = []
|
|
|
|
def __call__(self, item):
|
|
self.i += 1
|
|
n, i, sample = self.n, self.i, self.sample
|
|
if i <= n:
|
|
# Keep first n items
|
|
sample.append(item)
|
|
elif randrange(i) < n:
|
|
# Keep item
|
|
sample[randrange(n)] = item
|
|
return sample
|