ввиду что не всякий итерируемый объект является итератором, например: элементы объекта lst = [1, 2, 3] мы можем перебрать только если сначала применим функцию iter(lst) и только затем он станет итерируемый?
В лутце есть оговорочка по этому поводу, мол различие итерируемый и итератор, но там так же говорится что "это соглашение не является универсальным"
любой итератор является итерируемым объектом - для итераторов __iter__ (метод, который получает итератор для итерируемого объекта) определён как тождественная функция, т. е. iter(итератор) возвращает сам итератор
по поводу перебрать: цикл for сам делает iter для полученного объекта
Обсуждают сегодня