Тёмный

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

Computer Science Center
Подписаться 161 тыс.
Просмотров 21 тыс.
50% 1

compscicenter.ru/
Два протокола итераторов: _next_ + _iter_ и __getitem__. Итераторы и цикл for, а также операторы in и not in. Генераторы, оператор-выражение yield. Генераторы как: итераторы, сопрограммы, менеджеры контекста. Модуль itertools.
Лекция №8 в курсе "Python" (осень 2015).
Преподаватель курса: Сергей Лебедев
Страница лекции на сайте CS центра: goo.gl/STIaeF

Опубликовано:

 

28 окт 2015

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 15   
@vadimkovrizhkin7412
@vadimkovrizhkin7412 7 лет назад
Лекции супер. Только плохо, что не видно, куда указывает на слайдах преподаватель.
@Andrew-xb3nv
@Andrew-xb3nv 4 года назад
32:32 - можно получить, что хотим, используя list(g()) сколько угодно раз, каждый раз создаются новые генераторы.
@user-pg8ry1tm3t
@user-pg8ry1tm3t 4 месяца назад
То есть по умолчанию __iter__ не итератор с произвольным доступом?..
@AndreiZherder
@AndreiZherder 2 года назад
Генератор в методе __iter__ класса BinaryTree не позволит сделать обход дерева повторно. Верно?
@Nanoprim
@Nanoprim 7 лет назад
Здравствуйте, а домашние задания доступны только очным студентам или можно формулировки заданий где нибудь в открытом доступе найти?
@CompscicenterRu
@CompscicenterRu 7 лет назад
Домашние задания доступны только студентам CS центра, да. Мы сами не публиковали формулировки в открытый доступ.
@user-ug8qc6tr6b
@user-ug8qc6tr6b 8 лет назад
В резюме к итераторам 19:18 на слайде ошибка, не __init__ , а __iter__. Я не совсем понял отличия iterable и iter. К примеру когда мы в цикле обходим список, мы берем итератор у этого и списка и он уже использует метод __next__ ? И каждый раз итератор будет обходить этот список, но когда мы используем функцию iter([1,2,3]), она обходит только один цикл. Я не совсем понял этот момент, каждый раз когда мы вызываем у списка итератор через цикл, нам постоянно приходит новый итератор?
@user-ug8qc6tr6b
@user-ug8qc6tr6b 8 лет назад
+Sergei Lebedev спасибо, теперь все понял. У вас самые лучшие лекции о python в рунете.
@rquidrq7046
@rquidrq7046 6 лет назад
Что-то там с бинарным деревом не так, каким образом вызывается yield node.value?
@coppolos
@coppolos 6 лет назад
скорее всего там должно было быть yeild node, потому что node получает self.value из итератора
@Uni-Coder
@Uni-Coder 4 года назад
Да, там выходит ошибка "AttributeError: 'int' object has no attribute 'value'". Должно быть yield node, тогда работает. Потому что итератор возвращает значения в вершинах дерева, а не сами вершины дерева. Но можно переписать код: def __iter__(self): for node in self.left: yield node yield self for node in self.right: yield node И тогда возвращаются узлы. (Но даже здесь yield node, а не yield node.value). 35:26 "Метод iter теперь прекрасен, с этим сложно поспорить" :))
@user-zk6tw7rj1t
@user-zk6tw7rj1t 3 года назад
Видно что он хороший программист, английский знает, но преподавать не его
@mkhnuser
@mkhnuser 2 года назад
Бред. Почему?
@boobubuo
@boobubuo 2 года назад
@@mkhnuser очень много понтуется .. видно что может чесать языком .. и ощущение что вроде бы знает .. ему бы в политику ..
@artemtitov-sc8jq
@artemtitov-sc8jq Год назад
@@boobubuo клоун)
Далее
Многопоточность и GIL
1:21:47
Просмотров 34 тыс.
Dragon Age: The Veilguard | Official Reveal Trailer
02:08
The FULL Guide To Itertools For Python Developers
29:11