Итерируемый объект можно описать как последовательность элементов, которая может быть представлена в любом виде: файлом, строкой, списком, кортежем или любой другой структурой данных, элементы которой можно перебирать.
По сути, итерируемыми объектами являтся все объекты, от которых встроенная функция iter() может получить оператор.
Важно отметить, что это могут быть не только те объекты, которые реализуют метод __iter__. Дело в том, что для получения итератора функция iter() в первую очередь вызывает метод __iter__, а если он не реализован — проверяет наличие метода __getitem__ и уже на его основе создает итератор. При этом TypeError вызывается только в том случае, когда в объекте не реализован ни один из этих методов.