Filtering numbers in an iterator.
class FilterIterator:
def __init__(self, data, condition):
self.data = data
self.condition = condition
self.index = 0
def __iter__(self):
return self
def __next__(self):
while self.index < len(self.data):
value = self.data[self.index]
self.index += 1
if self.condition(value):
return value
raise StopIteration
it = iter(FilterIterator([1, 2, 3, 4, 5, 6], lambda x: x % 2 == 0))
print(list(it))
class FilterIterator:
def __init__(self, data, condition):
self.data = data
self.condition = condition
self.index = 0
def __iter__(self):
return self
def __next__(self):
while self.index < len(self.data):
value = self.data[self.index]
self.index += 1
if self.condition(value):
return value
raise StopIteration
it = iter(FilterIterator([1, 2, 3, 4, 5, 6], lambda x: x % 2 == 0))
print(list(it))