Итераторы, генераторы и модуль itertools

preview_player
Показать описание

Два протокола итераторов: __next__ + __iter__ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.

Лекция №8 в курсе "Python" (осень 2015).
Преподаватель курса: Сергей Лебедев
Рекомендации по теме
Комментарии
Автор

Лекции супер.
Только плохо, что не видно, куда указывает на слайдах преподаватель.

vadimkovrizhkin
Автор

32:32 - можно получить, что хотим, используя list(g()) сколько угодно раз, каждый раз создаются новые генераторы.

Andrew-xbnv
Автор

В резюме к итераторам 19:18 на слайде ошибка, не __init__, а __iter__. 
Я не совсем понял отличия iterable и iter. К примеру когда мы в цикле обходим список, мы берем итератор у этого и списка и он уже использует метод __next__ ? И каждый раз итератор будет обходить этот список, но когда мы используем функцию iter([1, 2, 3]), она обходит только один цикл. Я не совсем понял этот момент, каждый раз когда мы вызываем у списка итератор через цикл, нам постоянно приходит новый итератор?

ugqctrb
Автор

Генератор в методе __iter__ класса BinaryTree не позволит сделать обход дерева повторно. Верно?

AndreiZherder
Автор

Здравствуйте, а домашние задания доступны только очным студентам или можно формулировки заданий где нибудь в открытом доступе найти?

Nanoprim
Автор

Что-то там с бинарным деревом не так, каким образом вызывается yield node.value?

rquidrq
Автор

То есть по умолчанию __iter__ не итератор с произвольным доступом?..

pgrytmt
Автор

Видно что он хороший программист, английский знает, но преподавать не его

zktwrjt