Note_Tech

All technological notes.


Project maintained by simonangel-fong Hosted on GitHub Pages — Theme by mattgraham

Python - Iterators

Back


Iterators


print("\n--------Iterator--------\n")
xTuple = ("apple", "banana", "cherry")
yIter = iter(xTuple)

print(next(yIter))          # apple
print(next(yIter))          # banana
print(next(yIter))          # cherry


xStr = "banana"
xIter = iter(xStr)

print(next(xIter))          # b
print(next(xIter))          # a
print(next(xIter))          # n
print(next(xIter))          # a
print(next(xIter))          # n
print(next(xIter))          # a


print("\n--------Loop--------\n")
xlist=[1,2,3,4]
iter = iter(xlist)      # get an iterator
for x in iter:          # executes the `next()` method for each loop
    print (x, end=" ")


Create an Iterator

print("\n--------Create an Iterator--------\n")


class XIterator:
    def __iter__(self):
        self.a = 0
        return self

    def __next__(self):
        x = self.a
        self.a += 1
        return x


xIter = XIterator()
iter = iter(xIter)      # get an iterator

print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))


StopIteration

print("\n--------Create an Iterator--------\n")


class XIterator:
    def __iter__(self):
        self.a = 1
        return self

    def __next__(self):
        if self.a <= 20:
            x = self.a
            self.a += 1
            return x
        else:
            raise StopIteration


xIter = XIterator()
iter = iter(xIter)

for x in iter:
    print(x)        # 1-20


TOP