i) Iterators are objects in Python that allow you to traverse through a sequence of elements.
ii) They allow you to traverse through a collection (e.g. list, tuple, dictionary, set) one element at a time and perform operations on each element as desired.
iii) The iter() and next() functions are commonly used with iterators in Python.
Iterators are Python objects that allow one to iterate over iterable data structures like lists, strings, or dictionaries. They adhere to the iterator protocol that is composed of the __iter__() method to return the iterator object itself and the __next__() method to fetch the next element. After all elements are exhausted, a StopIteration exception is raised. Iterators are especially useful for processing large datasets efficiently without having to load them entirely into memory.
An iterator in Python is an object that enables traversal over a collection of items, one at a time. You do not have to know the underlying structure. It implements the __iter__() and __next__() methods. For instance, lists, tuples, and dictionaries can be turned into iterators, and you can use a for loop or the next() function to access elements one at a time.