Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.
Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.
Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.
В разделе «Итераторы в Python» поговорили о итераторах, с которыми мы неоднократно встречались на протяжении всего курса. Так же в этом разделе познакомились со списковыми включениями (list/dict/set comprehensions).
Краткий пересказ раздела «Итераторы в Python»
В первом уроке дали определение итераторам и выяснили какие объекты являются итерируемыми.
Итератор – это объект, который возвращает за один раз, один свой элемент. Каждый вызов итератора возвращает следующий элемент коллекции. В Python любой объект имеющий метод __iter__ является итерируемым.
Во втором уроке познакомились со списковыми включениями (list comprehensions).
Иногда списковые включения переводят как «генераторы списков», к сожалению, вводящий в путаницу, так как в Python есть понятие «генераторы».
Мы научились создавать списки более компактно, буквально в одну строку, благодаря списковым включениям. Тоже самое сделали для словарей и множеств.
Новая информация из раздела «Итераторы в Python»
Если объект имеет метод __iter__, то он является итерируемым:
l = [1, 2, 3, 4, 5]
print(dir(l)) # => ['__add__', ... '__init__', '__init_subclass__', '__iter__', ... , 'clear', ... , 'reverse', 'sort']
Можем вручную перебирать элементы итерируемого объекта. Для начала необходимо инициализировать итератор от него:
it = iter(l)
Затем вызывать метод итератора next() до поднятия исключения StopIteration:
print(next(it)) # => 1
...
print(next(it)) # => 5
print(next(it)) # => StopIteration
Общая структура списковых включений следующая:
НОВЫЙ_СПИСОК = [ОПЕРАЦИЯ for ЭЛЕМЕНТ_СПИСКА in СПИСОК]
НОВЫЙ_СПИСОК = [ОПЕРАЦИЯ for ЭЛЕМЕНТ_СПИСКА in СПИСОК if УСЛОВИЕ]
Заключение
В разделе «Итераторы в Python» вы наконец-то познакомились с операторами и выяснили, какие объекты являются итерируемыми. В следующем разделе будем разбираться с написанием собственных функций.
Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.
