are sets iterable python code example

Example 1: python set

set_example = {1, 2, 3, 4, 5, 5, 5}

print(set_example)

# OUTPUT
# {1, 2, 3, 4, 5} ----- Does not print repetitions

Example 2: iterator in python

# define a list
my_list = [4, 7, 0, 3]

# get an iterator using iter()
my_iter = iter(my_list)

# iterate through it using next()

# Output: 4
print(next(my_iter))

# Output: 7
print(next(my_iter))

# next(obj) is same as obj.__next__()

# Output: 0
print(my_iter.__next__())

# Output: 3
print(my_iter.__next__())

# This will raise error, no items left
next(my_iter)

Example 3: sets in python

set_of_base10_numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}
set_of_base2_numbers = {1, 0}

intersection = set_of_base10_numbers.intersection(set_of_base2_numbers)
union = set_of_base10_numbers.union(set_of_base2_numbers)

'''
intersection: {0, 1}:
	if the number is contained in both sets it becomes part of the intersection
union: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}:
	if the number exists in at lease one of the sets it becomes part of the union
'''

Example 4: iterator in python

class PowTwo:
    """Class to implement an iterator
    of powers of two"""

    def __init__(self, max=0):
        self.max = max

    def __iter__(self):
        self.n = 0
        return self

    def __next__(self):
        if self.n <= self.max:
            result = 2 ** self.n
            self.n += 1
            return result
        else:
            raise StopIteration


# create an object
numbers = PowTwo(3)

# create an iterable from the object
i = iter(numbers)

# Using next to get to the next iterator element
print(next(i))
print(next(i))
print(next(i))
print(next(i))
print(next(i))